今天发现浏览器每次请求都会先发一个OPTIONS请求,然后才是我们用户自己发起的请求,于是乎。。
发布日期:2021-07-01 00:22:23 浏览次数:2 分类:技术文章

本文共 681 字,大约阅读时间需要 2 分钟。

刚接触前端的时候,以为HTTP的Request Method只有GET与POST两种,后来才了解到,原来还有HEAD、PUT、DELETE、OPTIONS……

目前的工作中,HEAD、PUT、DELETE我是真的没有见过……但是OPTIONS几乎天天都会遇到。本地环境跑公司项目的时候,每次POST之前,为啥浏览器还偷偷给我来一次没有返回的OPTIONS请求?

原来,浏览器在某些请求中,在正式通信前会增加一次HTTP查询请求,称为"预检"请求(preflight)。

浏览器先询问服务器,当前网页所在的域名是否在服务器的许可名单之中,以及可以使用哪些HTTP动词和头信息字段。只有得到肯定答复,浏览器才会发出正式的XMLHttpRequest请求,否则就报错。

本地环境请求接口的时候,每次请求接口之前都会多一次OPTIONS请求。

CORS
CORS是一个W3C标准,全称是"跨域资源共享"(Cross-origin resource sharing)。

它允许浏览器向跨源服务器,发出XMLHttpRequest请求,从而克服了AJAX只能同源使用的限制。

CORS需要浏览器和服务器同时支持。目前,所有浏览器都支持该功能,IE浏览器不能低于IE10。

整个CORS通信过程,都是浏览器自动完成,不需要用户参与。对于开发者来说,CORS通信与同源的AJAX通信没有差别,代码完全一样。浏览器一旦发现AJAX请求跨源,就会自动添加一些附加的头信息,有时还会多出一次附加的请求,但用户不会有感觉。

因此,实现CORS通信的关键是服务器。只要服务器实现了CORS

转载地址:https://m528964214.blog.csdn.net/article/details/100526571 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:最近对接接口的时候,碰到了 500, 403, 200 等状态码
下一篇:浅谈五大Python Web框架

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2024年04月10日 11时00分35秒