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');

  ?>



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值