我正在为来自 Sharepoint 的 api 搜索查询生成一个复杂的字符串。我需要将双引号连接到字符串并使用 \ 字符来转义它们。if ($("#ddlPais option:selected").val() > 0) { url+= "RefinableString03: \"" + $("#ddlPais option:selected").text() + "\" ,";} 问题是 Internet Explorer 使用 \" 在变量中生成字符串。由于我在 AJAX 请求中使用字符串变量对 Sharepoint 进行 api 搜索,因此查询失败。我该怎么做才能使 Internet Explorer 不更改变量中的“ by \”?PD:这是一个 Internet Explorer 的错误。我试过 Chrome 和转义字符 \" 工作正常,并且在变量中只留下双引号。
2 回答
慕少森
TA贡献2019条经验 获得超9个赞
我已经找到了解决我的问题的方法。为了在进行 ajax 调用之前解决它,我执行了 encodeURIComponent 函数,该函数对 ajax 请求的整个 url 进行编码,从而避免了导致我出现双引号的问题。我发布它以防有人有类似的问题。
呼如林
TA贡献1798条经验 获得超3个赞
你用的是什么版本的IE?我在IE 11 版本11.116.18362.0 中进行了测试,转义字符运行良好。您可以在 IE 中查看我的演示代码。
此外,您可以在没有转义字符的情况下执行此操作。使用单引号将变量括起来,然后您可以直接在字符串中使用双引号。您可以检查以下代码作为解决方法:
var url = "";
if ($("#ddlPais option:selected").val() > 0) {
url += 'RefinableString03: "' + $("#ddlPais option:selected").text() + '" ,';
}
console.log(url);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select id="ddlPais">
<option value="1" selected="selected">valueX</option>
<option value="2">valueY</option>
</select>
添加回答
举报
0/150
提交
取消