angularjs中重复的ajax调用

Posted

技术标签:

【中文标题】angularjs中重复的ajax调用【英文标题】:duplicate ajax calls in angularjs 【发布时间】:2015-12-20 12:34:47 【问题描述】:

我正在使用express-jwt 构建一个restful api。现在客户端正在进行重复的ajax调用,第一个发起者是angularjs,第二个发起者是其他。第一个得到 204 作为响应代码,第二个得到 200 作为响应代码。我尝试调试以获取此重复请求的来源,但我无法。

下面是带有 204 状态码的标题详细信息

下面是带有 204 状态码的标题详细信息

谁能提出可能是什么问题?

【问题讨论】:

检查所有调用API的地方。 【参考方案1】:

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

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

这是响应标头的示例。

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

查看AJAX in Chrome sending OPTIONS instead of GET/POST/PUT/DELETE? 了解更多信息。

【讨论】:

感谢您的回复,非常有帮助。【参考方案2】:

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

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

请求方法OPTIONS时需要在服务端处理,然后不处理就退出。

【讨论】:

以上是关于angularjs中重复的ajax调用的主要内容,如果未能解决你的问题,请参考以下文章

AngularJS 中属性规范化背后的基本原理

AngularJS $http 之 POST 传参

前端小白之每天学习记录----angula2--

在 AngularJS 中重写 jQuery Ajax 调用

如何在 AngularJS 中进行模拟同步 AJAX 调用?

angularJS ajax 调用失败 403 但 jQuery ajax 调用适用于跨站点 templateUrl 加载。 [复制]