bfchengnuo / MyRecord

平时充电做的笔记,一个程序猿的自我修养.
https://bfchengnuo.com/MyRecord/
33 stars 8 forks source link

Ajax跨域中的预检请求 #39

Closed bfchengnuo closed 5 years ago

bfchengnuo commented 5 years ago

在项目中涉及到 Ajax 跨域时(使用 CORS 方式),注意到浏览器其实会发两次请求,一次类型为 OPTIONS,然后才是为们实际的 GET 或者 POST 请求。

并且,如果前面的 OPTIONS 请求没有成功,后面就不会再继续了,也就是,如果你的项目没有对 OPTIONS 请求进行处理,导致其失败的话,即使后面你加了类似 @CrossOrigin 的跨域处理,也是没有效果的。

bfchengnuo commented 5 years ago

哎。。。老了,发现我原来已经写过了。

连接:CORS充电笔记

更正:不是所有的跨域请求都会触发预检请求,具体那些需要进行预检在上面的笔记里写的很清楚了。

bfchengnuo commented 5 years ago

那就这里再补充一个被我忽略的知识点:

Cookies 跟跨域没啥太大关系,跟存储的时候设置的 path 有关系;

并且,它对端口不敏感,也就是它不区分端口,在跨域方面不需要考虑太多 Cookie 携带的问题。

被遗忘的科普文章:什么是cookie