簡體   English   中英

使用Ajax的api調用中的響應錯誤

[英]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.errorresult.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM