跨域请求想要带上cookies必须在请求头里面加上{crossDomain: true, xhrFields: {withCredentials: true}}设置。
首先在PHP后端设置:
// 指定允许其他域名访问
header('Access-Control-Allow-Origin:http://m.comment.com:9090'); //注意,必须指定域名,不能填写*
//如果嫌麻烦可以这么写:if(isset($_SERVER['HTTP_ORIGIN'])) header('Access-Control-Allow-Origin:'.$_SERVER['HTTP_ORIGIN']);
// 响应类型
header('Access-Control-Allow-Methods:POST');
// 响应头设置
header('Access-Control-Allow-Headers:x-requested-with,content-type');
header("Access-Control-Allow-Credentials: true");
前端设置:
$.ajax({
url: "http://localhost:8080/orders",
type: "GET",
xhrFields: {
withCredentials: true
},
crossDomain: true,
success: function (data) {
render(data);
}
});
如果你是用的$.post或者$.get可以先用$.ajaxSetup来设置一个默认的参数。然后再使用$.post或$.get即可。
$.ajaxSetup({
crossDomain: true,
xhrFields: {
withCredentials: true
}
});