当参数包含单引号/撇号时,我在IE11上使用jQuery进行AJAX调用时遇到问题。
基于jQuery文档https://api.jquery.com/jquery.getjson/
发送到服务器的数据作为查询附加到URL 串。如果data参数的值为纯对象,则为 转换为字符串并经过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上运行?还是另一只手-单引号/单引号是查询字符串中的有效字符,并且无论如何都必须由端点处理?
答案 0 :(得分:1)
如果这只是造成您麻烦的 字符,您可以凑在一起解决该问题的方法,以检查用户是否使用IE,然后使用JavaScript getByBoundingSphere()
函数从那里替换该用户:
replace()