为啥http请求从客户端发送两次到服务器(OPTION和POST)[重复]

Posted

技术标签:

【中文标题】为啥http请求从客户端发送两次到服务器(OPTION和POST)[重复]【英文标题】:Why http request send twice from client to server ( OPTION and POST ) [duplicate]为什么http请求从客户端发送两次到服务器(OPTION和POST)[重复] 【发布时间】:2016-12-26 07:51:56 【问题描述】:

当我单击提交按钮时,http 请求从客户端发送到服务器两次。 第一个是 OPTIONS,另一个是 POST 方法。

登录表单

HTTP 请求

【问题讨论】:

【参考方案1】:

根据Mozilla Developer Network:

预检请求

与简单的请求(上面讨论过)不同,“预检”请求首先 向另一端的资源发送 HTTP OPTIONS 请求标头 域,以确定实际请求是否安全 发送。跨站点请求是这样预检的,因为它们可能 对用户数据有影响。特别是,请求是 预检如果:

它使用 GET 或 POST 以外的方法。此外,如果 POST 用于发送 使用 Content-Type 以外的请求数据 application/x-www-form-urlencoded、multipart/form-data 或 text/plain, 例如如果 POST 请求使用 application/xml 或 text/xml,然后预检请求。它设置 请求中的自定义标头(例如,请求使用标头,例如 X-PINGOTHER)

【讨论】:

以上是关于为啥http请求从客户端发送两次到服务器(OPTION和POST)[重复]的主要内容,如果未能解决你的问题,请参考以下文章

6 张图带你搞懂 TCP 为啥是三次握手,而不是两次或四次?

在页面卸载 strophe.js 发送请求两次!为啥?

为啥axios请求接口会发起两次请求

Zend_Http_Client - 为啥我的 POST 请求发送错误的内容类型标头?

JAVA代码发送HTTP请求问题(我想实现和服务器进行一次连接时发送两次请求)

为啥在打印消息时名称会打印两次?