401 ответ на запрос предполетных опций - PullRequest
0 голосов
/ 11 сентября 2018

Я пытаюсь интегрировать мое мобильное приложение Cordova с Erecruit Adapt API, документация здесь: http://developer.adapt.co.uk/documents/Adapt%20REST%20API%20rev%201.2.pdf

Я использую JavaScript Ajax для выполнения всех моих запросов, мой первоначальный запрос к APIчтобы войти, я успешно реализовал это, и я получаю токен безопасности от API, который должен использоваться для всех моих будущих запросов к конечным точкам, в заголовке «x-adapt-sid».

Моя проблемаэто когда я использую другую конечную точку API, которая требует аутентификации, а именно ту, которая извлекает список всех заданий, когда отправляется предварительный запрос OPTIONS, я получаю 401 несанкционированную ошибку.Я понимаю, что это означает, что API пытается аутентифицировать мой запрос OPTIONS, чего он не должен делать, поэтому мой вопрос заключается в том, что я что-то делаю неправильно или это проблема на стороне сервера API?Должен ли я связаться с разработчиками API (Erecruit Adapt) и сообщить им, что они выполняют авторизацию по запросу OPTIONS?

Заранее спасибо за помощь, я всего лишь младший разработчик, поэтому хочу убедиться, что это так.API виноват, прежде чем я свяжусь с ними!

Мой код JavaScript, чтобы попытаться получить задания:

var self = this;

var baseURL = "https://d1.adaptondemand.com/WebApp/api/";

// Create ajax settings.
var settings = {
    url: baseURL + endpoint, // Endpoint = "v1/jobs"
    method: method, // GET
    contentType: "application/json",
    beforeSend: function(xhr) {
        if (self.SID) {
            // Attach the security token.
            xhr.setRequestHeader("x-adapt-sid", self.SID);
        }
    },
};

// If the request needs data, attach it to the settings object.
if (data) {
    settings.data = JSON.stringify(data);
}

return new Promise(function(resolve) {
    $.ajax(settings).then(function(response) {
        resolve(response);
    }).catch(function(response) {
        console.log(response);
    });
});

Ответ из браузера:

ОПЦИИhttps://d1.adaptondemand.com/WebApp/api/v1/jobs 401 (неавторизовано)

Не удалось загрузить https://d1.adaptondemand.com/WebApp/api/v1/jobs: Ответ на предпечатную проверку не имеет статуса HTTP ok.

Я также получаю ответиз API, что еще больше заставляет меня поверить, что они выполняют аутентификацию по запросу OPTIONS, который вызывает мою проблему.

{"ERROR_MSG": "Отсутствует или неверный токен авторизации"}

...