今天发现浏览器每次请求都会先发一个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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
初次前来,多多关照!
[***.217.46.12]2024年04月10日 11时00分35秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Java高级部分流重点总结下
2019-05-01
Java高级部分网络编程重点总结
2019-05-01
Java高级部分组件重点总结
2019-05-01
Java高级部分之线程重点总结(上)
2019-05-01
Java高级部分之线程重点总结(下)
2019-05-01
MapReduce程序运行流程
2019-05-01
MapReduce常见算法
2019-05-01
Eclipse中JVM内存配置
2019-05-01
Hadoop 新 MapReduce 框架 Yarn 详解
2019-05-01
Hadoop开发---经验总结1
2019-05-01
HBase结合MapReduce批量导入
2019-05-01
Hadoop本地运行模式深入理解
2019-05-01
Hadoop开发----经验总结3
2019-05-01
基于MapReduce的手机上网流量统计分析
2019-05-01
Hadoop中的自定义数据类型(序列化、反序列化机制)详解
2019-05-01
基于Yarn平台的MapReduce运行机制
2019-05-01
针对例会中出现的split块的位置问题的解决方案
2019-05-01
HBase Shell输入命令无法删除问题的解决技巧
2019-05-01