首頁 >web前端 >js教程 >為什麼我的 jQuery AJAX 請求以純文字而不是 JSON 形式發送資料?

為什麼我的 jQuery AJAX 請求以純文字而不是 JSON 形式發送資料?

DDD
DDD原創
2024-10-29 22:46:02545瀏覽

Why is my jQuery AJAX request sending data as plain text instead of JSON?

使用 jQuery 有效傳送 JSON 資料

在 Web 開發中,在客戶端和伺服器之間高效傳輸資料通常至關重要。 jQuery 是一個受歡迎的 JavaScript 函式庫,提供了處理這類資料交換的便捷方法。一項常見的任務是使用 jQuery 將 JSON 格式的資料傳送到伺服器。

但是,有時開發人員會遇到這樣的問題:資料不是以所需的 JSON 格式而是以純文字形式傳輸。為了理解為什麼會發生這種情況,讓我們檢查一個程式碼片段:

var arr = {City:'Moscow', Age:25};
$.ajax(
   {
        url: "Ajax.ashx",
        type: "POST",
        data: arr,
        dataType: 'json',
        async: false,
        success: function(msg) {
            alert(msg);
        }
    }
);

此程式碼嘗試使用 $.ajax 方法將 arr 物件中的資料傳送到 Ajax.ashx 伺服器。但是,出現問題的原因是程式碼沒有指定請求內容類型或正確建構 JSON 請求。

要修正此問題,應使用JSON.stringify 方法將JavaScript 物件轉換為原生JSON 字串:

var arr = { City: 'Moscow', Age: 25 };
$.ajax({
    url: 'Ajax.ashx',
    type: 'POST',
    data: JSON.stringify(arr),
    contentType: 'application/json; charset=utf-8',
    dataType: 'json',
    async: false,
    success: function(msg) {
        alert(msg);
    }
});

注意要點:

  • 注意要點:
  • 注意要點:
  • 注意要點:
注意重點>

contentType:指定請求內容類型,向伺服器指示正在傳送JSON 請求。

  • dataType:
  • 表示伺服器期望的回應類型。
JSON.stringify: 將 JavaScript 物件轉換為JSON 字串。 其他注意事項:arr 物件其實是一個 JavaScript 對象,而不是陣列。數組應用 [] 表示。 注意伺服器的回應並驗證其 Content-Type 標頭是否正確反映 JSON 回應。否則,jQuery 將嘗試將回應解析為 JSON,無論其實際格式為何。

以上是為什麼我的 jQuery AJAX 請求以純文字而不是 JSON 形式發送資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn