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) {
}
})