使用场景:跨域, 通过一个项目 ,给另外一个项目加上cookie信息
ajax 请求部分
$.ajax({ url:"别人的服务器地址", type:"GET", data: {}, //参数 xhrFields: { withCredentials: true //解决跨服务传递时不传递cookie的问题,允许携带证书 }, success: function(data) { console.log(data) }, error:function() { console.log("程序异常") } });
java 程序部分,可以在控制层或者在拦截器上直接加上以下代码
response.setHeader("Access-Control-Allow-Origin","其他项目请求域名"); //一点要填写具体的域名比如 http://127.0.0.1:8081 response.setHeader("Access-Control-Allow-Credentials", "true"); //很重要,开启cookie证书 response.setHeader("Access-Control-Allow-Methods", "POST, GET, PATCH, DELETE, PUT"); response.setHeader("Access-Control-Max-Age", "3600"); response.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
注意:
- "Access-Control-Allow-Origin" 这时候写 * 已不生效, 这个一定要写具体来源网站的域名,比如:https://www.baidu.com,http://127.0.0.1:8821等
- 还要 "Access-Control-Allow-Credentials" 一定要设置开启状态
- ajax 部分一定要开启 xhrFields:{withCredentials:true}