javascript - GET 使用 Postman,但不使用 Ajax?

标签 javascript jquery ajax

我正在尝试从托管一些帐户数据的服务器发出简单的 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)
    }
});

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

POSTMAN SETTINGS

最佳答案

从 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/

相关文章:

c# - 在 C# 中显示和隐藏 div 不起作用

javascript - 如何使用 jquery 在 Instagram 上分享图片

javascript - 验证在动态添加的字段上至少选中一个复选框

javascript - JavaScript "sort()"函数的算法

javascript - 使 bootstrap mega 菜单在悬停时打开而不是在单击时打开

javascript - 如何使用 jquery 根据多个复选框更改 <div> 文本?

javascript - jquery 中的 for 循环 <p> 标签

javascript - jQuery 选择器无法识别任何动态创建的 HTML 输入函数

javascript - 代码以错误的顺序执行

javascript - 选择更改后 Jquery 删除行成功 Ajax 调用