zoukankan      html  css  js  c++  java
  • 跨站访问如何保证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) {
                ...
            }
        })
    }

        

  • 相关阅读:
    [转]C#里 泛型Where和 new()的使用
    测试
    C#中的static、readonly与const的比较
    将字符串格式化变为两位
    在VS中对字段进行包装
    安装mysql的心得
    关于mysql数据库的乱码问题
    timestamp的两个属性:CURRENT_TIMESTAMP 和ON UPDATE CURRENT_TIMESTAMP
    解决向数据库mysql插入double数据小数点不显示问题
    JDBOOK
  • 原文地址:https://www.cnblogs.com/jiangzuo/p/7055536.html
Copyright © 2011-2022 走看看