2011-08-13 179 views
1

我正在JQuery中使用ajax函數從PHP腳本中返回一些具有json_encode函數的值。返回的數據似乎充滿了斜槓,引號和\ r \ n。我明白,一定有什麼東西出現錯誤與stripslashes或magic_quotes(已打開),但似乎無法設法得到一個乾淨的輸出Jquery AJAX PHP數據返回

+5

任何機會,你可以添加一些代碼?會幫助你很多,試圖幫助你 – ManseUK

+0

JSON充滿了引號,並且需要大量的內容轉義,所以它可能是乾淨的,只是你的處理已經關閉了。 JSON.org,您可以使用jsonlint.com等工具驗證JSON。 –

+0

請給我們代碼。 –

回答

3

請確保從jQuery的ajax調用,你告訴它期望json響應。這聽起來像你正在返回明文,並試圖手動解析它。

$.ajax({ 
    url: "myscript.php", 
    dataType: "json", 
    success: function(data){ 
    console.log(data); //this line only works with chrome (stock) or FireFox (with FireBug plugin) 
    } 
}); 

該代碼將在控制檯回聲(如果你沒有鉻或FF與螢火,去得到他們中的一個:P)編碼輸出的JSON。記住,當你從PHP輸出時,你應該做的就是:

header('Content-type: application/json'); 
echo json_encode($myAssociativeArrayOfData); 
exit; //make sure nothing else happens to output something 

你不需要使用任何特殊的格式或斜線。只要確保json代碼以正確的頭文件輸出爲json代碼,並且jQuery的ajax函數應該將其轉換爲您。結果將是成功函數中的數據變量,即您的json對象(php數組)。因此,如果你在PHP中傳入這樣的數組:array('foo'=>'bar'),那麼在jQuery中的成功函數中,可以輸入:alert(data.foo);並獲得一個對話框,說「酒吧」。