各位听众,老司机们,以及未来的编程大神们,晚上好!我是今晚的“JavaScript深夜食堂”主讲人。今天咱们聊点儿HTTP协议里有点儿绕,但又不得不搞明白的玩意儿:CORS预检请求。这玩意儿就像HTTP请求里的“安检”,专门对付那些可能不太“老实”的跨域请求。 一、啥是CORS,为啥要有预检? 首先,咱得明确CORS (Cross-Origin Resource Sharing) 跨域资源共享,它是一种浏览器安全机制。浏览器为了防止恶意网站搞事情,默认禁止JavaScript脚本发起跨域请求。啥叫跨域?简单来说,就是你当前页面的域名(协议、域名、端口,三者有一个不一样就算跨域)和你要请求的服务器域名不一样。 举个例子:你现在访问的是 http://www.example.com,然后你的JS代码想去请求 http://api.example.net的数据,这就跨域了。 CORS就是用来放宽这个限制,允许一些跨域请求。但是,为了更安全,有些“危险”的跨域请求,浏览器会先发一个“预检请求”探探路,确认服务器允许这次请求,才会真正发送数据。 二、为啥有些请求要预检,有些不用? 关键在于请求的 …
继续阅读“JavaScript内核与高级编程之:`JavaScript`的`CORS`预检请求:其在复杂 `HTTP` 请求中的工作原理。”