2

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

截屏

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

204响应码

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

200 响应码

任何人都可以建议可能是什么问题?

4

2 回答 2

5

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

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

这是响应标头的示例。 在此处输入图像描述

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

看看Chrome 中的 AJAX 发送 OPTIONS 而不是 GET/POST/PUT/DELETE?了解更多信息。

于 2015-09-23T09:38:00.053 回答
2

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

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

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

于 2015-09-23T09:41:58.270 回答