2013-04-13 172 views
0
var p = JSON.stringify(parameter); 
    console.log(p); 
    $.ajax({ 
     type: 'POST', 
     url: 'http://abc.com/ajax.php', 
     data: p, 
     success: function(status) { 
      console.log(status); 
     } 
    }); 

的console.log(P)的服務器的數據顯示{"o_fname":"hh","o_lname":"jkhk","o_email":"[email protected]","o_phone":"","b_name":"bmnbmbm,b","b_address":"","b_city":"","b_postal":"","b_phone":""} 但在我http://abc.com/ajax.phpprint_r($_POST)是給我一個空數組Array()Ajax請求,發送給不工作

+0

服務器的訪問日誌說什麼? –

+0

沒有錯誤。沒有發送到服務器的發佈變量。但如果我寫{「o_fname」:「hh」,「o_lname」:「jkhk」,「o_email」:「[email protected]」,「o_phone」:「」,「b_name」: 「bmnbmbm,b」,「b_address」:「」,「b_city」:「」,「b_postal」:「」,「b_phone」:「」}它的作品 – iThink

+0

你嘗試過'contentType:'json','或'json_decode();' –

回答

0
var p = JSON.stringify(parameter); 

是你的問題。

當您將字符串數據傳遞給.ajax時,它會按原樣發送它 - 但如果PHP收到編碼爲application/x-www-form-urlencoded的數據,則只會彈出$ _POST。

所以使您的數據轉換成字符串,而是直接通過您的parameter對象作爲價值data - 然後jQuery將採取發送它的正確方式護理,使PHP懂得什麼是應該做的用它。

0

我認爲問題的公園可能是數據中的:你傳遞參數的細​​節,而是傳遞給jQuery另一端的函數,你傳遞了一個參數名稱而沒有別的。

嘗試:

$.ajax({ 
    type: 'POST', 
    url: 'http://abc.com/ajax.php', 
    data: {parametername:p}, 
    success: function(status) { 
     console.log(status); 
    } 
}); 

隨着參數名稱與參數名稱ajax.php更換期待。

+0

我的數據是{「o_fname」:「hh」,「o_lname」:「jkhk」,「o_email」:「[email protected]」,「o_phone」:「」,「b_name」:「bmnbmbm,b」 ,「b_address」:「」,「b_city」:「」,「b_postal」:「」,「b_phone」:「」}&p就是這個意思。和ajax.php期待o_fname,o_lname&... – iThink

+0

嘗試更改ajax.php以期望您發送的對象並推斷您從所述對象獲得的數據。無論哪種方式,現在它只是得到一個空的參數p。 – shadowmaster13