HTTP 之 options预请求
目录
一、HTTP一共有八种常见请求方法
二、什么是预请求
三、为什么需要
四、什么情况下发生(以下都属于复杂请求)
五、为什么需要设置成contentType:"application/json"
六、需要配置什么
七、options作用
八、跨域方法
九、简单请求和非简单请求(复杂请求)
a.简单请求
b.非简单请求
c.浏览器如何查看options请求
十、如何在抓包工具和F12开发者工具中查看OPTION预检请求?
一、HTTP一共有八种常见请求方法
- get:参数在url上,浏览器长度有限制,不安全
- post:参数不可见,长度不受限制
- put:上传最新内容到指定位置
- delete:删除请求的url所表示的资源
- head:不返回相应主体,主要用于客户端查看服务器性能
- options:与head类似,是客户端用于查看服务器的性能 。JavaScript的XMLHttpRequest对象进行CORS跨域资源共享时,就是使用OPTIONS方法发送嗅探请求,以判断是否有对指定资源的访问权限
- connect:http1.1预留的,将连接方式改为管道方式,通常用于SSL加密服务器的链接与 HTTP非加密的代理服务器之间的通信
- trace:请求服务器[回显收到的请求信息]主要用于HTTP请求的测试或诊断
- patch:出现的较晚,用于更新局部的资源,不存在时,会创建一个新的(http1.1之后使用的较多的)
一般来说我们只需要用到post和get,但是如果后端是ResetFul设计规范下就需要用到各种语义化的方法了
二、什么是预请求
预请求就是复杂请求(可能对服务器数据产生副作用的HTTP请求方法,如put,delete都会对服务器数据进行修改,所以要先询问服务器)。
跨域请求中,浏览器自发的发起的预请求,浏览器会查询到两次请求,第一次的请求参数是options,以检测试实际请求是否可以被浏览器接受
三、为什么需要
w3c规范要求,对复杂请求,浏览器必须先使用options发起一个预检请求,从而获知服务器是否允许该跨域请求,服务器确认以后才能发起实际的HTTP请求,否则停止第二次正式请求。
那为什么我们不常见options请求呢??
因为大部分我们使用的是get,post请求,他们属于简单请求,而简单请求不会触发options请求。
那什么情况下会发生options请求呢???
HTTP 之 options预请求相关推荐
- JAVA解决OPTIONS请求问题:跨域时ajax发送两次请求,其中options预请求参数为null及其解决方案
转载请注明出处 原文链接:https://blog.csdn.net/qq_39309348/article/details/103267908 在正式跨域的请求前,浏览器会根据需要,发起一个&quo ...
- get和post请求区别,options预请求
区别 请求报文不一样:get请求请求体中没有请求数据,post请求的请求体中有请求数据. 传输方式:get参数通过url传输,post参数通过请求体传输. get相对post不安全,因为参数都是直接暴 ...
- http预请求options
在有很多情况下,当我们在js里面调用一次ajax请求时,在浏览器那边却会查询到两次请求,第一次的Request Method参数是OPTIONS,还有一次就是我们真正的请求,比如get或是post请求 ...
- 对CORS OPTIONS预检请求的一些思考
前后端分离模大势所趋,跨域问题更是老生常谈. <程序员应对浏览器同源策略的姿势>一文提到三种跨域请求方案,重点讲述了w3c和浏览器厂商推出的CORS规范. 同源策略 所谓同源是指域名.协 ...
- OPTIONS预检请求
1.options请求是什么?什么时候浏览器会发送预检请求 options是预检请求,在真正的请求发送出去之前,浏览器都会先发送一个options请求 向服务器询问此接口是否允许我访问.浏览器在当前真 ...
- 从前后端的角度分析options预检请求——打破前后端联调的理解障碍
文章目录 1.从前端的角度看options--post请求之前一定会有options请求?信口雌黄! 2.从后端的角度看options--post请求之前一定会有options请求?胡说八道! 1.从 ...
- H5请求服务端发送POST请求之预请求-OPTIONS
1.问题场景 1.1 H5端请求服务端接口时,需要在header中携带服务端用jwt规范生成的token 1.2 在接收到H5的请求时Filter需要从请求头中拿出token做校验,检查当前的toke ...
- vue跨域拦截浏览器options预检
当你跨域访问接口的时候,会发现你的接口请求了两次,然后仔细对比一下会发现请求类型并不一致,一个是OPTIONS,另一个是你的POST请求.事情是这样发生的,当浏览器发现你准备跨域进行非简单请求的时候( ...
- CORS跨域限制以及预请求验证(C++ Qt框架实现)
目录 理论 演示及代码 理论 跨域默认情况下允许方法:GET.HEAD.POST 默认情况下允许的Content-Type:text/plain.multipart/form-data.applica ...
最新文章
- linux中文件记录的时间参数,【Linux】stat命令查看文件的三个时间参数
- python可变长参数(非关键字及关键字参数)
- python同时兼容2和3的几个技巧
- fcntl函数完成 set_fl()函数还有clr_fl()函数的封装
- .NET实现之(自动更新)
- 万物皆可“小程序”——迟到的iOS 14之猜想
- 关于memecache的使用及清楚示意
- mysql df_DF学Mysql(一)——数据库基本操作
- 电磁场与电磁波第四版 课后习题
- 3dmax2016卸载/安装失败/如何彻底卸载清除干净3dmax2016注册表和文件的方法
- 微博运营的5个经典案例
- 一键seo提交收录_百度、360快速收录新上线网站技巧、方法
- mib浏览器_大众汽车的第二代MIB信息娱乐系统图解
- hping3对某网站发起ddos攻击
- JavaScript中unshift() 方法
- linux内核的挂载,通过Linux内核使用RDT
- 【VUE项目实战】68、使用pm2管理项目
- 多项式的 加法 与 乘法(C语言 单链表)
- glib 交叉编译记录
- 常见网站劫持案例及解析