ajax携带cookie

使用场景:跨域, 通过一个项目 ,给另外一个项目加上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");

 

注意: 

  1. "Access-Control-Allow-Origin"  这时候写 * 已不生效, 这个一定要写具体来源网站的域名,比如:https://www.baidu.com,http://127.0.0.1:8821等
  2. 还要 "Access-Control-Allow-Credentials" 一定要设置开启状态
  3. ajax 部分一定要开启  xhrFields:{withCredentials:true}
posted @ 2021-12-14 18:00  lanwf  阅读(1267)  评论(0编辑  收藏  举报