跨域使用自定义请求头

1.跨域

跨域是指请求协议,域名,端口三者存在某几个不同的时候就是跨域。

2.浏览器同源策略

同源策略限制了不同源之前的资源使用,比如cookie,请求头等。参考(https://www.cnblogs.com/laixiangran/p/9064769.html

3.跨域共享cookie

cookie是从服务端下发到客户端(浏览器)的,服务端通过发送一个名为 Set-Cookie 的HTTP头来创建一个cookie,作为 Response Headers 的一部分。

通过 Set-Cookie 指定的可选项(域、路径、失效时间、secure标志)只会在「浏览器端」使用,它们都是服务器给浏览器的指示,以指定何时应该发送cookie。这些参数不会被发送至服务器端,只有name和value才会被发送。

客户端会根据这个响应头存储Cookie信息。再次请求服务器时,客户端会在请求信息中包含一个Cookie请求头,而服务器会根据这个请求头进行用户身份、状态等较验。

使用cors来解决跨域问题时需要以下步骤:

a.服务端设置响应消息头Access-Control-Allow-Credentials值为“true”。
同时,还需要设置响应消息头Access-Control-Allow-Origin值为指定单一域名(注:不能为通配符“*”)。

b.客户端需要设置Ajax请求属性withCredentials=true,让Ajax请求都带上Cookie。

 

4.跨域使用自定义请求头

a.服务端设置Access-Control-Expose-Headers (参考:https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers/Access-Control-Expose-Headers

服务端设置Access-Control-Allow-Headers的值包含‘Access-Control-Expose-Headers’,比如我自定义的请求头叫scdefinded:123456;

 

 

然后在请求中正常的设置自定义请求头即可 

浏览器中显示

 

posted @ 2019-11-15 16:54  疯魔掉书袋  阅读(...)  评论(...编辑  收藏