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

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

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

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

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

【问题讨论】:

  • 检查所有调用API的地方。

标签: angularjs node.js express-jwt


【解决方案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时需要在服务端处理,然后不处理就退出。

【讨论】:

    猜你喜欢
    • 2018-04-07
    • 2013-07-01
    • 1970-01-01
    • 2012-07-22
    • 1970-01-01
    • 2011-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多