jquery - AJAX 参数中无法识别的转义序列错误
问题描述
我正在尝试使用 AJAX 填充 jQuery 数据表。我传递给 Web 服务的参数是一个文件路径,并且我不断收到无法识别的转义序列错误。我试图逃避一些字符无济于事:
Unrecognized escape sequence. (15): { \\u0027Path\\u0027: \\u0027C:\\\\TEMP\\\\DEV\\\\IDC\\\\2391\\\\GBS_IDC_WS_20190508.log\\u0027}\
这是提交按钮单击处理程序:
$(document).on('click', '#btnSubmit', function (ev) {
var wsUrl = "services/lv.asmx/ProcessLogFile";
var wsParams = "{ 'Path': '" + escapeHtml(logPath) + "'}";
// var wsParams = '{ "Path": "' + logPath + '"}';
populateTable(wsUrl, wsParams, tblContacts);
return false;
});
function populateTable(ws_url, parameters, table) {
debugger
$.ajax({
type: "POST",
dataType: "json",
contentType: "application/json; charset=utf-8",
url: ws_url,
cache: false,
data: parameters,
}).done(function (result) {
table.clear().draw();
if (!result || result.d === "") {
}
else {
jResult = JSON.parse(result.d);
table.rows.add(jResult).draw();
}
}).fail(function (jqXHR, textStatus, errorThrown) {
alert(textStatus + ' - ' + errorThrown + '\n' + jqXHR.responseText);
});
}
这是我在网上找到的用于转义某些字符的脚本:
var entityMap = {
'&': '&',
'<': '<',
'>': '>',
'"': '"',
"'": ''',
'/': '/',
'`': '`',
'=': '='
};
function escapeHtml (string) {
return String(string).replace(/[&<>"'`=\/]/g, function (s) {
return entityMap[s];
});
}
解决方案
修复方法是按照 Mohammad 的建议替换函数 populateTable(ws_url, parameters, table) 中的以下行:
data: parameters,
和:
data: JSON.stringify(parameters),
因此,更新的(部分)方法是:
$(document).on('click', '#btnSubmit', function (ev) {
var wsUrl = "services/lv.asmx/ProcessLogFile";
var wsParams = { Path: escapeHtml(logPath) };
populateTable(wsUrl, wsParams, tblContacts);
return false;
});
function populateTable(ws_url, parameters, table) {
$.ajax({
type: "POST",
dataType: "json",
contentType: "application/json; charset=utf-8",
url: ws_url,
cache: false,
data: JSON.stringify(parameters),
}).done(function (result) {...}
推荐阅读
- ruby-on-rails - 将 pdf 附加到 actionmailer 和 wicked pdf 时缺少模板
- ansible - 如何从 Ansible 模块获取当前库存?
- swift - 如何在 iOS 中获取 NFC 标签的 icManufacturerCode
- c# - 如何通过示例使用 SOAP 请求调用 Web 服务?
- python - Python 脚本仅读取 100 个第一个文件
- java - 如何在 Java 中模拟 MongoDB 存储库方法
- javascript - 理解 javascript 片段中的构造
- excel - 创建具有多个轴原点且能够过滤的折线图
- python - 为什么卷积算法没有连接?
- java - FileInputStream 逐字节或逐块读取?