jquery php json cookie ajax 解决跨域的问题

javascript 做异步请求的时候, 请求json数据,如果在不同的子域下。

例如: a.example.com 请求b.example.com 的数据,需要增加

<?php

    header('Access-Control-Allow-Origin: '.$_SERVER['HTTP_ORIGIN']);

?>

为了数据安全建议,做判断

 if (strpos($_SERVER['HTTP_ORIGIN','.example.com')!==false){

   header('Access-Control-Allow-Origin: '.$_SERVER['HTTP_ORIGIN']);

}


如果需要跨域请求cookie,在client端的javascript 代码需要增加

xhrFields: { withCredentials:true }

<script>

$.ajax({
      type: 'POST',
      url: "http://b.example.com/?",
      xhrFields: { withCredentials:true },
      success: function (data){
            console.log(data);
      }

</script>

在服务器端的头信息需要返回

Access-Control-Allow-Credentials: true 

使用php代码为

    <?php

    header("Access-Control-Allow-Credentials: true");

    //且返回的cookie需要增加上级域名

    setcookie('user','yubing', time()+86400,'/','example.com');

  ?>



猜你喜欢

转载自blog.csdn.net/robinhunan/article/details/77075103