`selectedText` 含單引號或雙引號時,手動拼接 JSON 字串導致格式錯誤,`data: "{'s':'" + selectedText + "'}"` 或 `data: "{ \"s\":\""+ selectedText+"\" }"` 皆會斷裂。
$.ajax({
type: "POST",
url: "Reader.aspx/GetStr",
data: { s: selectedText }, // 關鍵:傳物件,jQuery 自動 JSON.stringify
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(data) { ... },
error: function(err) { alert("data error"); }
});
// 使用 JSON.stringify 確保合法轉義
var payload = JSON.stringify({ s: selectedText });
$.ajax({
data: payload,
contentType: "application/json; charset=utf-8",
...
});
data: '{"s":"' + selectedText.replace(/"/g, '\\"').replace(/'/g, "\\'") + '"}'
ASP.NET WebMethod 自動反序列化 JSON 到參數:
[WebMethod]
public static string GetStr(string s) {
// s 已正確解碼,含原始引號
return Process(s);
}