如何在没有 Internet Explorer 修改的情况下在字符串中使用双引号?

我正在为来自 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 和转义字符 \" 工作正常,并且在变量中只留下双引号。


慕桂英4014372
浏览 157回答 2
2回答

慕少森

我已经找到了解决我的问题的方法。为了在进行 ajax 调用之前解决它,我执行了 encodeURIComponent 函数,该函数对 ajax 请求的整个 url 进行编码,从而避免了导致我出现双引号的问题。我发布它以防有人有类似的问题。

呼如林

你用的是什么版本的IE?我在IE 11 版本11.116.18362.0 中进行了测试,转义字符运行良好。您可以在 IE 中查看我的演示代码。此外,您可以在没有转义字符的情况下执行此操作。使用单引号将变量括起来,然后您可以直接在字符串中使用双引号。您可以检查以下代码作为解决方法:var url = "";if ($("#ddlPais option:selected").val() > 0) {&nbsp; 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">&nbsp; <option value="1" selected="selected">valueX</option>&nbsp; <option value="2">valueY</option></select>
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript