1. Ajax攜帶cookie的兩種方式
場景:
後臺需要前端的ajax請求攜帶上cookie值,因爲cookie上面有用戶的userId的加密信息或者是token。
解決步驟:
1、服務器方面,添加@CrossOrigin註解到controller層上。-----》解決服務端允許前端跨域問題。
2、前端方面:必須要注意的點是:瀏覽器的同源策略問題----》就是域名必須要一致,否則,ajax是不會攜帶非同源的cookie的。-----》怎樣解決這個同源的問題呢?-----》如果前端同事懂的話,可以用node.js去配置代理---》如果是後臺同事懂的話,可以用nginx去配置反向代理------》目的是:讓域名保持一致!!!!!
ajax請求
a. 第一種
$.ajax({
url: 'www.baidu.com',
type: 'post',
data: '',
// 默認情況下,標準的跨域請求是不會發送cookie的
xhrFields: {
withCredentials: true
},
success: (rs) {
}
})
b. 第二種 / 因爲有時候第一種情況cookie也是攜帶不過去的,可以通過fiddle 4抓包看
$.ajax({
url: 'www.baidu.com',
type: 'post',
data: '',
// 默認情況下,標準的跨域請求是不會發送cookie的
beforeSend: function (xhr) {
xhr.withCredentials = true
},
success: (rs) {
}
})