文章详情页
javascript - 请问为什么CORS中需要对部分请求进行预检
浏览:121日期:2022-12-27 15:34:15
问题描述
CORS的请求分为简单请求和非简单请求,对于非简单请求,CORS定义需要对这些非简单请求发起一次预检,也即是发起一个option请求,待确认服务器允许跨域后才会重新发送原先的非简单请求,所以我想问下为什么需要进行预检?
这里有一个stack上面的回答,我看的不是太明白,有人愿意翻译或者简单概括下?
http://stackoverflow.com/ques...
问题解答
回答1:你要去人家里拿东西,总得经主人同意吧
回答2:跨域是浏览器的同源策略搞出来的事情,预请求是浏览器行为,拿着当前的域名去问服务端能不能通过。
回答3:最常用的两个get 默认不存在跨域,意思是你允许 get 就要有被别人拿走的预期,jsonp 就是利用这点;post 存在跨域, 因为按意思会对资源产生影响,必须先检验。
回答4:对那些可能对服务器数据产生副作用的 HTTP 请求方法(特别是 GET 以外的 HTTP 请求,或者搭配某些 MIME 类型的 POST 请求),浏览器必须首先使用 OPTIONS 方法发起一个预检请求(preflight request),从而获知服务端是否允许该跨域请求。服务器确认允许之后,才发起实际的 HTTP 请求。在预检请求的返回中,服务器端也可以通知客户端,是否需要携带身份凭证(包括 Cookies 和 HTTP 认证相关数据)。
———— HTTP访问控制(CORS)
标签:
JavaScript
相关文章:
1. PHP能实现百度网盘的自动化么?2. android - 使用vue.js进行原生开发如何进行Class绑定3. 网页爬虫 - python requests爬虫,如何post payload4. node.js - 微信的自动回复问题5. node.js - vue服务端渲染如何部署到线上6. css3 - 请问一下在移动端CSS布局布局中通常需要用到哪些元素,属性?7. javascript - 百度图片切换图片时url会改变,但无刷新,没用hash,IE8也支持,请问是用了什么技术?8. MySQL 水平拆分之后,自动增长的ID有什么好的解决办法?9. angular.js - 各位大神们,你们混合开发,web方式中更推荐用什么框架呀? react?vue?angular?谢谢~10. mysql如何添加索引的时候指定索引方式
排行榜
