印前检查请求的401响应

时间:2018-09-11 15:30:14

标签: ajax api authentication http-status-code-401 preflight

我正在尝试将我的Cordova移动应用程序与Erecruit Adapt API集成在一起,文档在这里:http://developer.adapt.co.uk/documents/Adapt%20REST%20API%20rev%201.2.pdf

我正在使用JavaScript Ajax执行我的所有请求,我对API的初始请求是登录,我已经成功实现了这一点,并且从API收到了安全令牌,该令牌应用于以后对API的所有请求端点,在标题“ x-adapt-sid”中。

我的问题是,当我使用另一个需要身份验证的API端点时,即用于检索所有作业列表的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正常状态。

我还收到来自API的响应,这进一步使我相信他们正在对导致我的问题的OPTIONS请求执行身份验证。

  

{“ ERROR_MSG”:“验证令牌缺失或不正确”}

0 个答案:

没有答案