浅谈CORS跨域请求的简单请求和非简单请求

2019-05-19  本文已影响0人  cyh_1

在日常开发中,我们会发现同一个请求发送了两次,但是请求方式不同,这是因为CORS请求的简单请求和非简单请求的原因。

什么是CORS跨域请求的简单请求和非简单请求

  1. 同时满足两大条件,就属于简单请求
    • 请求方式:GET、POST、HEAD(注:什么是HEAD请求?HEAD请求和GET本质是一样的,但是HEAD请求不含数据,只有HTTP头部信息)
    • HTTP头部信息不超过一下几种字段:无自定义头部字段、Accept、Accept-Language、Content-Language、Last-Event-ID、Content-Type(只有三个值application/x-www-form-urlencoded、multipart/form-data、text/plain)
  2. 非简单请求
    • 请求方式:PUT、DELETE
    • 自定义头部字段
    • 发送json格式数据
    • 正式通信之前,浏览器会先发送OPTION请求,进行预检,这一次的请求称为“预检请求”
    • 服务器成功响应预检请求后,才会发送真正的请求,并且携带真实数据

客户端示例

$.ajax({
    url:'http://127.0.0.1:8000/getData.html',
    type:'put',
    success: function(data){
        console.log(data);
    },
})

网络请求返回示例:


image
image

服务端处理

注意

上一篇 下一篇

猜你喜欢

热点阅读