ajax get post 跨域 并携带cookie

get和post时才有这个跨域和cookie跨域的问题,jsonp因为机制不同,无此问题,但是jsonp数据量有限

原生js

// 会带上cookie
var xmlhttp = new XMLHttpRequest();
    xmlhttp.withCredentials = true;

jquery ajax

$.ajax({
    url : rankApi,
    dataType : "json",
    xhrFields: {
        withCredentials: true
    },
    data:{
    },
    type : "post",
    success : function(res){
    },
    error : ()=>{
    }
})

php相应头

// 允许cookie
$header["Access-Control-Allow-Credentials"] = "true";

// 允许跨域
$origin = input("origin", request()->header("Origin"));
if ($origin && in_array($origin, config("alloworigin")))
{
    $header["Access-Control-Allow-Origin"] = $origin;
}

// 判断jsonp
if (isset($_GET['callback']))
{
    return jsonp($data);
}
else
{
    return json($data, 200, $header);
}

相关文章

此处评论已关闭