一般来说我们只需要用到post和get,但是如果后端是ResetFul设计规范下就需要用到各种语义化的方法了
w3c规范要求,对复杂请求,浏览器必须先使用options发起一个预检请求,从而获知服务器是否允许该跨域请求,服务器确认以后才能发起实际的HTTP请求,否则停止第二次正式请求。
那为什么我们不常见options请求呢??
因为大部分我们使用的是get,post请求,他们属于简单请求,而简单请求不会触发options请求。
那什么情况下会发生options请求呢?????
例如设置了post请求的content-type:application/json,就会发生预请求
ajax发送复杂的json数据结构, 处理方式困难, 服务器端难以解析, 所以就有了application/json这种类型(数据格式的声明)
服务端好解析并且比较统一,如果你请求中没有设置成json格式的,有的服务端收到后也会改成json格式的,但是如何请求中就改成了json格式的就会发生options预请求
在 CORS 中,可以使用 OPTIONS 方法发起一个预检请求,服务器基于从预检请求获得的信息来判断,以检测实际请求是否可以被服务器所接受。
"Access-Control-Allow-Origin" : * 【跨域】 Access-Control-Allow-Methods:POST,GET,OPTIONS,DELEDET 【所允许的请求方法告知客户端】 Access-Control-Allow-Headers: X-Requested-With, accept, origin, content-type【自定义的请求头】 Access-Control-Allow-Age:3600 【一段时间内不需要再次预请求,直接用本次结果即可】 "Content-Type", "application/json;charset=utf-8"
OPTIONS请求方法的主要用途有两个:
原文:https://www.cnblogs.com/magicg/p/13670213.html