首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >开始使用Postman,但不使用Ajax?

开始使用Postman,但不使用Ajax?
EN

Stack Overflow用户
提问于 2015-07-17 07:53:36
回答 2查看 12.4K关注 0票数 7

我正在尝试从托管一些帐户数据的服务器执行一个简单的GET请求。请求需要Authorization标头才能正常工作。我已经在Postman中成功地执行了GET请求并检索到了数据,但是尝试通过Ajax在Javascript中这样做会导致"Invalid HTTP status code 405“错误。

下面是指向小提琴的链接和Postman设置的屏幕截图。谢谢!

代码语言:javascript
运行
复制
$.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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-07-17 07:56:57

在Chrome的JS控制台上:

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

因为您要添加Authorization标头,所以使请求变得复杂。这需要浏览器生成一个preflight OPTIONS request来请求发送复杂请求的权限。

您正在向其发出请求的服务器正在响应,表示不允许对该URL发出OPTIONS请求。

您需要修改服务器,使其适当地响应印前检查CORS请求。

Postman不需要发出印前检查请求,因为您的浏览器信任Postman的代码。它不知道它是否可以信任它从JSFiddle (又称潜在的邪恶黑客网站)那里收到的代码,以及api05.iq.questrade.com (又称潜在的在线银行或公司内部网站点)愿意与其共享的数据。

票数 11
EN

Stack Overflow用户

发布于 2015-07-17 07:59:28

查看控制台错误:

代码语言:javascript
运行
复制
XMLHttpRequest cannot load https://api05.iq.questrade.com/v1/accounts.
No 'Access-Control-Allow-Origin' header is present on the requested resource.
Origin 'http://fiddle.jshell.net' is therefore not allowed access. The response had HTTP status code 405.

这就是CORS问题。如果域名与运行代码的域名不匹配,浏览器会向服务器发送OPTIONS,也就是飞行前请求。您还必须将所需的标头添加到响应中。

您必须修改服务器才能处理此问题。

您也可以使用JSONP作为替代方案。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31466420

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档