GET与Postman合作,但没有与Ajax合作?

the*_*cho 7 javascript ajax jquery

我正在尝试从托管某些帐户数据的服务器执行简单的GET请求.该请求需要Authorization标头才能正常运行.我已经执行了GET请求并在Postman中成功检索了数据,但是尝试通过Ajax在Javascript中执行此操作会导致"无效的HTTP状态代码405"错误.

下面是一个小提琴的链接和邮差设置的屏幕截图.谢谢.!

$.ajax({
    beforeSend: function(xhrObj){
            xhrObj.setRequestHeader("Authorization","Bearer tj7LTLycpQC6DRup5BkHUO7uVbYaAZI40");
    },
    type: "GET",
    url: "https://api05.iq.questrade.com/v1/accounts",
    success: function(e){
            console.log(e)
    }
});
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/Ldjbp2j8/1/

邮递员设定

Que*_*tin 10

来自Chrome的JS控制台:

无法加载资源:服务器响应状态为405(方法不允许)

因为您要添加Authorization标头,所以您使请求变得复杂.这要求浏览器发出预检OPTIONS请求以请求发送复杂请求的权限.

您发出请求的服务器正在响应,说OPTIONS请求不允许该URL.

您需要修改服务器,以便它适当地响应预检CORS请求.


邮差不需要发出预检请求,因为您的浏览器信任Postman的代码.它不知道它是否可以信任它从JSFiddle(AKA 潜在邪恶的黑客网站)收到的数据与数据api05.iq.questrade.com(AKA 潜在的网上银​​行或公司内联网网站)愿意与它共享.