首先我贊同我的DATAS在PHP中,我用很簡單的人試了一下,如:AJAX xhr.responseText返回整個HTML
echo json_encode(array("one" => "something"));
然後我試圖抓住它在我的AJAX調用我以前寫的內對於PHP(和工作):
succcess: function (xhr,data) {
var something = JSON.parse(data);
console.log(something);
}
但我得到JSON.parse語法錯誤()每次:
Uncaught SyntaxError: Unexpected token < in JSON at position 0
,所以我剛剛註銷了「數據」的xhr.responseText
,並且它返回頁面的整個html的。
如果我註銷XHR(它應該包含我認爲HTML),我得到這個:
XMLHttpRequest {onreadystatechange: null, readyState: 4, timeout: 0, withCredentials: false, upload: XMLHttpRequestUpload…}
我想找回只有JSON編碼數據,而不是整個HTML。
在此先感謝您的答案。
編輯: 問題是,這個PHP中生成的PHP語句,這相當於echo語句之前的HTML內容,所以阿賈克斯無法從我想要發送的數據區分開來。我做了另一個PHP文件來完成這項任務,現在它正常工作。
告訴我們你的PHP頁面的整個地方是'回聲json_encode ...'命令。你是否在該頁面上輸出其他內容? – ADyson
這是一個很長的PHP。我輸出html元素,如選擇選項和輸入字段。對於一些我也使用回聲實際上 –
好的。因此,您應該將創建JSON響應的代碼移動到單獨的文件中,然後可以從您的AJAX請求中專門調用該文件。否則,PHP將只運行整個腳本並返回該腳本輸出的所有內容。或者,或者至少使用if/else來運行腳本的不同部分,具體取決於請求的操作是什麼 – ADyson