最近在做项目时发现一个问题:在本地运行项目时,同一个post请求会发送了两次
我们可以看到,这里多了一个看似无效的OPTIONS请求。这里其实是一次"预检"请求,浏览器先询问服务器,当前网页所在的域名是否在服务器的许可名单之中,以及可以使用哪些HTTP动词和头信息字段。只有得到肯定答复,浏览器才会发出正式的XMLHttpRequest请求,否则就报错。
我这里产生跨域的原因是因为,开发前端vue项目时要开端口,后端服务也要开端口,然后端口不同,产生了跨域。又因为我的content-type为application/json;charset=UTF-8 ,所以就有 options 请求。当项目打包上线后就没得跨域了,options自然就没了。
这里推荐一些相关文章:
由Request Method:OPTIONS初窥CORS ;
XMLHttpRequest 跨域时产生了 OPTIONS 请求