我最近開始翻譯舊的Classic ASP
網站到PHP
。它的幾個頁面(Response.ContentType = "application/json")
只會服務JSON
響應,如{"R":1}
和一切工作正常。PHP JSON到AJAX不被解析 - JSON格式正確
現在在PHP上,header("content-type:application/json")
代碼的第一件事,ajax只是不會解析它。客戶端JS代碼與我之前使用的代碼相同。我甚至沒有碰過它。
$.ajax({
dataType: "json",
type : "POST",
url: "processthisrequest.php",
cache: false,
async: false,
data: { Field1:"bla", Field2:"blabla"},
error: function(data){
// code on error
},
success: function(json){
// code on success
}
});
如果請求被接受的所有它服務
是{"R":1}
用雙引號,因爲它一直都是。
無論發生什麼,Ajax都會觸發錯誤功能。嘗試調試它,我發現這一點:
readyState:4
responseText:{"R":1}
status:200
statusText:OK
尋求幫助,我發現很多人有問題,阿賈克斯獲得的readyState:4,狀態:200和反應仍然沒有被解析。沒有解決方案適用於我的問題。
因爲它與IIS/ASP一起工作,它可以與Apache或PHP的東西?
UPDATE: 仍然沒有成功,但如果我的服務器服務於的.js文件與{"R":1}
,而不是通過處理一個PHP頁面的Ajax響應將觸發成功的功能。這隻能證明我的觀點,即這是一個PHP問題,也解釋了爲什麼它使用老恐龍ASP。現在爲什麼PHP沒有提供適當的MIME類型是我想弄明白的。
如果將'console.log(data);'添加到錯誤函數中,您會在控制檯中獲得什麼? – AlliterativeAlice
readyState:4,responseText:「{」R「:1}」,狀態:200,statusText:「確定」並且對所有其他屬性起作用。 –
嘗試將'dataType'參數更改爲'text'並查看是否調用成功。 – AlliterativeAlice