设置服务器探针处理,防止出现跨域

跨域的基本知识 下面这篇文章写的很全

跨域、简单请求与复杂请求_cors简单请求和复杂请求-CSDN博客

补充:

简单请求

浏览器会对简单请求自动执行跨域请求。这意味着在跨域请求时,浏览器会添加 Origin 头部字段到 HTTP 请求中,并且只有在服务器端返回适当的响应头部字段(例如 Access-Control-Allow-Origin)时,浏览器才会允许该请求。

(如果 响应头 Access-Control-Allow-Origin == 请求头 Origin ) 不跨域

(如果 响应头 Access-Control-Allow-Origin != 请求头 Origin ) 才会出现跨域==》找后端改

因此,简单请求不会产生跨域问题,而不符合条件的请求才会受到浏览器的跨域策略的限制。

也就是说简单请求会自动携带Origin 去服务器,如果服务器设置了Access-Control-Allow-Origin 为请求访问的Origin那么就不会出现跨域

设置服务器探针处理,防止出现跨域_第1张图片

复杂请求

复杂请求的探针不是每次都会出现,探针是有缓存的

探针不会携带真实请求的信息

服务端

第一、设置 Access-Control-Allow-Origin 允许请求的源  一般是 请求头里的Origin 就是设置为多少

第二、设置Access-Control-Allow-Headers  这个是定义允许请求头里面允许携带的字段,可以设置 自定义字段、如果Access-Control-Allow-Headers: *  ,允许请求头添加任何自定义标签

第三、服务器必须处理OPTION  请求探针 ,处理不做任何业务逻辑,直接返回空数据即可,不然浏览器会出现跨域。

你可能感兴趣的:(前端)