在angularjs中复制ajax调用

时间:2015-09-23 09:09:24

标签: angularjs node.js express-jwt

我正在使用express-jwt来构建一个宁静的api。现在客户端正在进行重复的ajax调用,第一个是启动器是angularjs,而第二个启动器是另一个。第一个获得204作为响应代码,第二个获得200作为响应代码。我试图调试以获取此重复请求的来源,但我无法做到。

Screen shot

以下是204状态代码

的标题详细信息

204 response code

以下是204状态代码

的标题详细信息

200 response code

任何人都可以提出可能存在的问题吗?

2 个答案:

答案 0 :(得分:3)

第一个调用是OPTIONS类型。如果页面和api不在同一个域中,那就是浏览器发送的飞行前呼叫。

此调用的目的是处理CORS。后端通常需要发送允许的请求方法类型(GET,POST等)。如果所需的请求类型在返回的请求类型中,浏览器将发送真实的呼叫。

以下是响应标头的示例。 enter image description here

您可以忽略它的所有意图和目的。它不包含任何通常有用的有效载荷或返回数据。

请查看AJAX in Chrome sending OPTIONS instead of GET/POST/PUT/DELETE?了解详情。

答案 1 :(得分:2)

这两个请求不同,一个是OPTIONS,另一个是GET

对于跨域请求,将内容类型设置为application/x-www-form-urlencodedmultipart/form-datatext/plain以外的任何内容都会触发浏览器发送预检OPTIONS请求服务器。

您需要在请求方法OPTIONS时处理服务器,然后您需要退出处理。