我在這裏抨擊我的頭靠在牆上,我希望有人能幫助我。使用AJAX從PHP發送JSON到JavaScript
我有一個調用PHP頁面的AJAX函數。該頁面返回一個JSON對象,然後應該解析並顯示給用戶。一切正常,除非返回JSON對象,試圖解析它給出未定義。
的PHP:
$jsonArray= array(
'request' => 'this is the request',
'response' => 'this is the response'
);
echo json_encode($jsonArray);
在阿賈克斯,我做了以下內容:
var display=xmlHttp.responseText;
alert(display); //gives {"request":"this is the request","response":"This is the response"}
alert(display.request); //gives undefined
我失去了一些東西明顯?將相同的字符串直接粘貼到JavaScript變量中似乎工作正常...
別忘了用你的JSON對象(text/json)發送正確的頭文件。 text/html將起作用,因爲兩者都是文本,但發送正確的MIME類型是一種很好的做法。 – zzzzBov 2010-11-06 03:31:23
@zzzzBov:根據RFC 4627,不正確的JSON MIME類型是'application/json'。你可以在echo語句之前使用PHP代碼'header('Content-type:application/json');'來設置它。 – PleaseStand 2010-11-06 06:25:46
@idealmachine道歉,我沒有查找正確的MIME類型。我的觀點仍然認爲text/html將起作用,因爲兩者都是文字。 – zzzzBov 2010-11-06 16:50:43