• 跨站访问如何保证session的正常使用


    1、最近公司开发了一个网站项目,一切顺利。由于网页没有兼容手机浏览器,后来添加了一个webapp端,独立于另一个站点,用于解决兼容手机浏览器的问题。其中webapp端的数据全部通过ajax进行请求另一个站点的数据。由于原站点是使用session机制,所以当webapp端在跨站调用数据时,存在着跨站访问原session不能使用问题,即第一次访问得到的sessionID在第二次访问时不能再次带上,导致每次访问数据前都要重新登录。

    2、问题背景交代清楚后,我们来针对问题的解决。

      (1)、服务器端:在返回给前端请求结果前加上以下代码

    function return($data){
           $u = $_SERVER['HTTP_REFERER'];
            preg_match("/^(w+://)?([^/]+)/i", $u , $matches);
            header('Access-Control-Allow-Origin:'.$matches[0]); //允许跨站访问的站点域名
            header("Access-Control-Allow-Credentials:true");  //跨域请求头设置
         return $data;
    }     

      (2)、前端进行ajax请求时,要加入如下代码

    function $POST (url, data, callback) {
        loadingBox.create()
        $.ajax({
            url:(UrlPost+url),
            type: 'post',
            data: data,
            xhrFields: {
                withCredentials: true
            },//添加跨域名请求参数
            crossDomain: true,//添加跨域名请求参数
            success:function(data){
               ...
            },
            error: function (err) {
                ...
            }
        })
    }

        

  • 相关阅读:
    hdu 2709 Sumsets
    hdu 2004 成绩转换
    hihocoder 1043 完全背包
    hihocoder 1038 01背包
    hihocoder 1066 无间道之并查集
    并查集小结
    hdu 1232 畅通工程
    并查集学习2
    并查集知识学习
    js 禁止表单提交的方法(文件上传)
  • 原文地址:https://www.cnblogs.com/jiangzuo/p/7055536.html
Copyright © 2020-2023  润新知