ajax跨域的设置

跨域请求想要带上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
    }
});

发表评论

邮箱地址不会被公开。 必填项已用*标注