我正在尝试从托管一些帐户数据的服务器发出简单的 GET 请求。该请求需要授权 header 才能正常运行。我已在 Postman 中执行 GET 请求并成功检索数据,但尝试通过 Ajax 在 Javascript 中执行此操作会导致“无效的 HTTP 状态代码 405”错误。
下面是 fiddle 的链接和 Postman 设置的屏幕截图。谢谢!
$.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)
}
});
最佳答案
从 Chrome 的 JS 控制台:
Failed to load resource: the server responded with a status of 405 (Method Not Allowed)
因为您要添加授权 header ,所以您的请求复杂。这需要浏览器生成 preflight OPTIONS request请求发送复杂请求的权限。
您向其发出请求的服务器响应说该 URL 不允许 OPTIONS 请求。
您将需要修改服务器,以便它适本地响应预检 CORS 请求。
Postman 不需要发出预检请求,因为您的浏览器信任 Postman 的代码。它不知道它是否可以信任从 JSFiddle(又名潜在的邪恶黑客站点)收到的代码以及数据 api05.iq.questrade.com(又名潜在的网上银行或公司内联网)网站)愿意与之分享。
关于javascript - GET 使用 Postman,但不使用 Ajax?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31466420/