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-urlencoded
、multipart/form-data
或text/plain
以外的任何内容都会触发浏览器向服务器发送预检OPTIONS
请求。
请求方法OPTIONS
时需要在服务端处理,然后不处理就退出。
【讨论】:
以上是关于angularjs中重复的ajax调用的主要内容,如果未能解决你的问题,请参考以下文章
在 AngularJS 中重写 jQuery Ajax 调用
如何在 AngularJS 中进行模拟同步 AJAX 调用?
angularJS ajax 调用失败 403 但 jQuery ajax 调用适用于跨站点 templateUrl 加载。 [复制]