[英]Response error in api call with ajax
我想檢索houseType
,這是使用ajax的api調用。 只有Console.log
可以得到result
,但是其他顯示為undefined
。 我不知道為什么會這樣。
$.ajax({
url: 'http://api/get.php',
type: 'GET',
crossDomain: true,
datatype:'json',
data:{
HouseNo: 2001
},
success: function(result) {
console.log(result);
console.log(result.error);
console.log(result.houses);
console.log(result.houses.houseType);
if (result.error == false) {
window.location.href = "viewHouses.php"
}
},
error: function(result) {
alert("Error");
}
});
控制台日志result
是
{"error":false,"houses":[{"houseType":"Mansion"}]}
但是result.error
和result.houses
的日志undefined
。 我想念什么?
如jquery docs所述:
“ json”:將響應評估為JSON並返回一個JavaScript對象。 跨域“ json”請求將轉換為“ jsonp”,除非該請求的請求選項中包含jsonp:false。 JSON數據是嚴格解析的。 任何格式錯誤的JSON都會被拒絕,並引發解析錯誤。
如果要通過跨域請求來請求數據,則選項應具有jsonp: false
值:
$.ajax({
url: 'http://api/get.php',
type: 'GET',
crossDomain: true,
datatype:'json',
jsonp: false,
data:{
HouseNo: 2001
},
success: function(result) {
// ...
},
error: function(result) {
// ...
}
});
對我來說,這似乎是您實際上正在記錄某種JSON(P)字符串。 如果上述方法不起作用,請嘗試使用以下方法解析result
:
try {
var parsed = JSON.parse(result);
console.log(parsed);
} catch(err) { console.log(err); }
我很好奇這段代碼會記錄什么。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.