2014-06-19 149 views
0

我正在使用jQuery(getJSON)從PHP頁面撤回值的腳本。 PHP頁面正確顯示帶有正確鍵和值的編碼對象,並從$_SESSION變量中檢索值。但是,當JavaScript嘗試訪問此頁面時,將檢索該對象,但只有這些鍵完好無損,值將被替換爲null。返回值null$_SESSION中檢索,而任何手動添加的值都正確返回。這是可以避免/解決的嗎?將訪問令牌存儲在Cookie而不是會話中會更有意義嗎?getJSON和OAuth令牌

代碼示例:

<?php 
    session_start(); 

    $token = $_SESSION['token'] -> access_token; 

    $information = [ 
    "media_token" => $token, 
    "test" => "testing" 
    ]; 

    print json_encode($information); //when page is directly accessed, 
            //returns correct information 
?> 

的Javascript:

$.getJSON('oauth.php', function (data){ 
      console.log(data); // media_token: null 
           // test: testing 
    }); 

回答

0

原來的問題是,我是訪問包含該JS使用非WWW網頁的頁面,而加入萬維網解決了這一問題。不知道爲什麼,但很明顯,如果頁面可以訪問$ _SESSION,那麼改變了。如果任何人都可以解釋爲什麼這是很好的情況,歡呼。

0

試試這個代碼,它會幫助你

<html> 
<head> 
<script type="text/javascript" src="https://code.jquery.com/jquery-2.1.1.min.js"></script> 
<script> 
$(document).ready(function() { 
$.getJSON('oauth.php', function (data){ 
      console.log(data); // media_token: null 
           // test: testing 
    }); 
}); 
</script> 
</head> 
<body> 
<div class="title"> 
    <h2>PRESS</h2> 
    <p>hello</p> 
</div> 
</body> 
</html> 

oauth.php文件

session_start(); 
    $_SESSION['token']="Hello1212"; 
    $token = $_SESSION['token'];// -> access_token; 

    $information = array(
    "media_token" => $token, 
    "test" => "testing" 
); 

    print json_encode($information); //when page is directly accessed, 
            //returns correct information 
+0

令牌可以通過javascript'oauth.php?token = value'發送。它會幫助你獲得價值。 – Manjunatha

+0

感謝您的回覆 - 值$ _SESSION ['token']肯定設置爲當直接訪問oauth.php時,得到的輸出如下所示: '{「token」:「283Eeh.380dc4hgpp74d0d8c939d12oll」,「test」:「testing 「}} 但問題仍然是,當$ .getJSON訪問頁面時,'media_token'返回爲'null',但返回關鍵'test'和值'testing' ... – mjbk88

+0

我已經獲得了值頁面:對象{media_token =「Hello1212」,test =「testing」} – Manjunatha