2013-03-13 77 views
1

我試圖完成我的第一個AJAX交換,但是我在主頁展開的時候會脫落。我有一個JSON字符串,我通過AJAX發送到一個php頁面,verify.php,但是當我嘗試接收這些數據時,$_POSTverify.php似乎完全是空的,如我的verify.php頁面上的代碼所示:

 
if (empty($_POST)) { 
    echo 'empty'; 
} else { 
    echo 'not-empty'; 
} 

我不知道這是爲什麼......我的AJAX代碼似乎是好的:

 
$.ajax({ 
    type: 'POST', 
    url: 'serverside/verify.php', 
    data: data, // Where data is a javascript obj. which has been JSON.stringify'ied. 
    dataType: "JSON", 
    success: function(returned) { 
     console.log(returned); 
    }     
});

而且我時,我CONSOLE.LOG我的JSON字符串,我看到它是顯示正常,甚至我的成功回調函數正在向控制檯記錄「空」(因爲上面的if語句導致它回顯'空')。所以交易似乎發生的很好,數據似乎正在發送很好,但它顯然沒有到達超全球化的$_POST。誰能解釋爲什麼?

+0

請附上螢火蟲截圖!我認爲PHP是好的 – 2013-03-13 08:28:25

回答

2

請檢查您是否錯過了任何步驟!

//聲明一個變量

var jsonObj = {demo: 'this is just a simple json object'} 

//讓我們轉換JSON對象

var postData = JSON.stringify(jsonObj); 

//讓我們把我們的字符串化JSON到一個變量張貼

var postArray = {json:postData}; 

$.ajax({ 
    type: 'POST', 
    url: "http://somedomain.local.com/phpfile.php", 
    data: postArray, 
    success: function(data){ 
     // Do some action here with the data variable that contains the resulting message 
    } 
}); 

我們需要將輸入的字符串中的斜線去掉。然後我們只需運行json_decode php函數。之後,我們可以訪問php對象,然後使用它,但我們喜歡。

if(isset($_POST["json"])){ 
    $json = stripslashes($_POST["json"]); 
    $output = json_decode($json); 

    // Now you can access your php object like so 
    // $output[0]->variable-name 
    } 

希望它會幫助!

+0

dataType - 您希望從服務器返回的數據類型。請參閱手冊http://api.jquery.com/jQuery.ajax/ – 2013-03-13 08:32:32

+0

對不起,我簡化了這個問題。該URL是正確的。 – ReactingToAngularVues 2013-03-13 08:40:47

+0

@防病毒請檢查我更新的答案可能有幫助! – sandip 2013-03-13 08:57:04