使用場景:跨域, 通過一個項目 ,給另外一個項目加上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}