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

AJAX 發送 JSON 數據報 Data Error:單引號拼接導致格式無效,改用對象字面量

     編輯:程式設計綜合問答

錯誤代碼


data: "{'s':'" + selectedText + "'}",  // 手工拼接 JSON 字符串
contentType: "application/json; charset=utf-8",

若 selectedText 包含單引號、換行或特殊字符,生成的字符串不是合法 JSON,導致服務端解析失敗返回 500,前端進入 error 回調提示 "data error"。

正確寫法:傳遞 JavaScript 對象


data: { s: selectedText },  // jQuery 會自動序列化為合法 JSON
contentType: "application/json; charset=utf-8",
dataType: "json",

原理

  • data 為對象時,jQuery 內部調用 JSON.stringify 正確處理轉義。
  • contentType: "application/json" 告知服務端請求體為 JSON。
  • 服務端(ASP.NET WebMethod)需對應參數名 s。

完整示例


function ajaxSend() {
    $('#btnSend').prop('disabled', true);
    $.ajax({
        type: "POST",
        url: "Reader.aspx/GetStr",
        data: { s: selectedText },  // 關鍵修正
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (data) {
            $('#Report').html(data.d);
        },
        error: function (xhr, status, err) {
            console.error("AJAX Error:", status, err, xhr.responseText);
            alert("請求失敗:" + err);
        },
        complete: function () {
            $('#btnSend').prop('disabled', false);
        }
    });
}
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved