我是靠谱客的博主 还单身微笑,这篇文章主要介绍一次ajax调用,发送了两次请求(一次为请求方法为option,一次为正常请求),现在分享给大家,希望可以做个参考。

在项目了开发时遇见一个奇怪的现象,就是我在js里面掉了一次ajax请求,在浏览器network那边查询到的却是发送了两次请求,第一次的Request Method参数为OPTIONS,第二次的Request Method为我正常设定的POST。

在参考了:https://blog.csdn.net/cc1314_/article/details/78272329这边博客以后终于找到了原因。

浏览器对复杂跨域请求的处理,在发送真正的请求前, 会先发送一个方法为OPTIONS的预请求(preflight request), 用于试探服务端是否能接受真正的请求,如果options获得的回应是拒绝性质的,比如404403500等http状态,就会停止post、put等请求的发出。

有三种方式会导致这种现象:

1、请求方法不是GET/HEAD/POST

2、POST请求的Content-Type并非application/x-www-form-urlencoded, multipart/form-data, 或text/plain

3、请求设置了自定义的header字段

我的Content-Type设置为“application/json;charset=utf-8”并且自定义了header选项导致了这种情况。

 

 

最后

以上就是还单身微笑最近收集整理的关于一次ajax调用,发送了两次请求(一次为请求方法为option,一次为正常请求)的全部内容,更多相关一次ajax调用内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(129)

评论列表共有 0 条评论

立即
投稿
返回
顶部