当参数包含单引号/撇号时,我在 IE11 上使用 jQuery 进行 AJAX 调用有问题。
基于 jQuery 文档https://api.jquery.com/jquery.getjson/
发送到服务器的数据作为查询字符串附加到 URL。如果 data 参数的值是一个普通对象,它会在附加到 URL 之前转换为字符串并进行 url 编码。
它应该对任何特殊字符进行编码,但显然对 IE11 没有这样做。
AJAX 调用如下所示:
$.getJSON(
"https://fqdn.to.server:8888/pdqm/endpoint",
{
firstName: self.firstName(),
lastName: self.lastName()
},
function (data) {
//here is some stuff to do with UI
}
当使用搜索示例 Va$$ar O'Connor 时,它将创建请求 URL 为
https://fqdn.to.server:8888/pdqm/endpoint?firstName=Va%24%24ar&lastName=O'Connor
在 Chrome/Firefox 中看起来像
https://fqdn.to.server:8888/pdqm/endpoint?firstName=Va%24%24ar&lastName=O%27Connor
这是正确编码的 URL。
任何提示如何让它在 IE 上工作?或者另一方面 - 单引号/撇号是否是查询字符串中的有效字符,无论如何都必须由端点处理?