1

okta API を介してセッション トークンを作成しようとしています。okta ドキュメントで CORS を有効にしました。

以下の「GET」が機能します。

function testGetApps() {
    var baseUrl = 'https://mydomain.okta.com';
    $.ajax({
        url: baseUrl + '/api/v1/users/userId/appLinks',
        type: 'GET',
        accept: 'application/json',
        headers: { Authorization : 'SSWS oktaApiKey'}
    }).done(function (data) {
        console.log(data);
    })
    .fail(function (xhr, textStatus, error) {
        var title, message;
        switch (xhr.status) {
            case 403:
                title = xhr.responseJSON.errorSummary;
                message = 'Please login to your Okta organization before running the test';
                break;
            default:
                title = 'Invalid URL or Cross-Origin Request Blocked';
                message = 'You must explictly add this site (' + window.location.origin + ') to the list of allowed websites in your Okta Admin Dashboard';
                break;
        }
        alert(title + ': ' + message);
    });
}

ただし、以下の「POST」はエラーで失敗します。

XMLHttpRequest はhttps://mydomain.okta.com/api/v1/sessions?additionalFields=cookieTokenを読み込めません。要求されたリソースに「Access-Control-Allow-Origin」ヘッダーがありません。したがって、オリジン「http://mydomain」へのアクセスは許可されていません。

function initOktaSession() {
    var txtUserName = $('UserName').val();
    var txtPassword = $('Password').val();

    var data = { username: txtUserName, password: txtPassword };
    var requestUrl = 'https://mydomain.okta.com/api/v1/sessions?additionalFields=cookieToken';


    //Call Webservices to update
    $.ajax({
        type: 'POST',
        url: requestUrl,
        headers: {authorization : 'SSWS oktaApiKey'},
        contentType: 'application/json',
        data: JSON.stringify(data),
        async: true,
        success: function (data) {
            console.log(data);
        },
        error: function (err) {
            console && console.log(err);
            !console && alert(err.status + ' ' + err.statusText);
        }
    });
}
4

1 に答える 1

0

Create Session API 呼び出しはCORS対応ではありません。

于 2015-01-28T17:25:45.637 に答える