如何實現(xiàn)session跨域共享

本篇內(nèi)容主要講解“如何實現(xiàn)session跨域共享”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“如何實現(xiàn)session跨域共享”吧!

成都創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比慶安網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式慶安網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋慶安地區(qū)。費(fèi)用合理售后完善,十年實體公司更值得信賴。

1.傳遞session_id有4種方法

通過cookie

設(shè)置php.ini中的session.use_trans_sid=1,讓PHP自動跨頁傳遞session id

手動通過url或隱藏表單傳值

用文件或數(shù)據(jù)庫方式傳遞,在通過其他key對應(yīng)取值

2.保存session信息有3種方法

數(shù)據(jù)庫

memcache

共享文件

3.跨域訪問的方法

通過服務(wù)器(php腳本)

通過JavaScript

由于,各種原因。我選擇的方案是:

cookie傳遞session_id

文件保存sesson信息

通過服務(wù)器腳本跨域

啥也不說了,上代碼了。這兩段代碼都是用php腳本設(shè)置的

設(shè)置允許跨域的域名:

$origin = isset($_SERVER['HTTP_ORIGIN'])? $_SERVER['HTTP_ORIGIN'] : ''; 
$allow_origin = array( 
    'http://two.google.com',    'http://three.google.com');
header("Access-Control-Allow-Credentials: true");if(in_array($origin, $allow_origin)){  
    header('Access-Control-Allow-Origin:'.$origin);       
}

設(shè)置跨域的cookie

if(!isset($_COOKIE['session_idx'])){
    $session_id = session_id();
    setcookie("session_idx", $session_id, time()+3600*24*365*10, "/", ".google.com");//這里.google.com的作用是讓www.google.com、two.google.com等二級域名可以共享這可cookie
    $_SESSION['userName'] = 'ok';
}else{
    session_id($_COOKIE['session_idx']);
}echo $_SESSION['userName'];

訪問跨域的api時,不附帶cookie問題的解決代碼,需要操作兩個步驟:(使用jquery的ajax方法)

1.寫好客戶端的js代碼

$("#getCodeBtn").click(function(){  var phone = $("#phoneNum").val();
  $.ajax({    type: "POST",    url: 'http://www.google.com/index.php/register/getCode',    dataType: 'jsonp',    data: {'phoneNum':phone, 'crossDomain':true},    xhrFields: {              withCredentials: true
    },    crossDomain: true,    success:function(data){      if(data.responseCode == '101'){
        alert('成功');
      }else if(data.responseCode == '100'){
     alert('失敗');
      }
    },    error:function(data1, data2, data3){
      alert(data1+'--'+data2+'--'+data3);
    }
  });
});

2.寫好服務(wù)器端的代碼

<?php   //callback參數(shù)是jquery生成的
    $callBack = $_GET['callback'];
    $data = array('responseCode'=>'101', 'responseMessage'=>'success');   //下面的格式,才會被jquery解析
    $responseData = $callBack.'('.json_encode($data).')';    echo $responseData;?>

到此,相信大家對“如何實現(xiàn)session跨域共享”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

網(wǎng)站題目:如何實現(xiàn)session跨域共享
轉(zhuǎn)載來源:http://muchs.cn/article26/piesjg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營銷、虛擬主機(jī)、定制開發(fā)、動態(tài)網(wǎng)站網(wǎng)站收錄、小程序開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化