首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

jQuery AJAX 自動解析 JSON 回應的條件與陷阱

     編輯:程式設計疑難解答

使用 jQuery $.get、$.post 或 $.ajax 時,回調函數的 data 參數有時是物件,有時是字串,這取決於伺服器回應標頭與請求配置。

自動解析為物件的條件

  • 伺服器回應 Content-Type: application/json(如 Express res.json())。
  • 或在 $.ajax 中顯式設定 dataType: 'json'。

滿足任一條件,jQuery 內部會用 JSON.parse 解析,data 直接變為 JS 物件,可直接讀取 data.code。

常見陷阱

  • 非標準 JSON:如 {code:'1', msg:'...'}(鍵名未加雙引號),JSON.parse 會拋錯,導致進入 error 回調。
  • 伺服器未設 Content-Type:若回應 text/html 或 text/plain,jQuery 不會自動解析,需手動 JSON.parse(data)。
  • jQuery 版本差異:1.4+ 使用原生 JSON.parse,嚴格模式下對格式要求嚴格。

最佳實踐

$.ajax({
    url: '/api',
    dataType: 'json', // 強制指定
    success: function(data) {
        // data 已是物件
    }
});

並確保後端輸出合法 JSON(鍵值雙引號、無尾隨逗號)。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved