JavaScript window.location 行为

标签 javascript jquery window.location

使用以下代码,我将用户重定向到一个 php 脚本,其中执行了一些操作:

requestObject.queries = {
    lv   : searchQueryLV,
    desc : searchQueryDesc,
    ru   : searchQueryRU,
    oth  : searchQueryOth
};

var queryStr = $.param(requestObject);
location.replace('http://' + location.host + '/path/to/file.php?' + queryStr);

问题是 queryStr 可能包含一些 html 特殊字符,如标签等。

当它包含它们时,我的代码就会失败。它以搜索部分看起来像这样的 URL 结尾:

queryType=search&queries[lv]=<br>&queries[desc]=&queries[ru]=&queries[oth]=

如您所见,我无法获取,我对 queryString 进行了编码:

$.param(requestObject);

当我对它进行 console.log 时,它会按原样显示。但是当我将它传递给 location.replace() 时,它是一团糟。我尝试使用 JS 原生 encodeURI 手动构建它,但这没有帮助。

如果你能帮助我,我会很高兴。

最佳答案

在您的 queryStr 上使用 Javascript 中的 encodeURIComponent 函数来转义可能在您的 queryStr 中的 URL 中不允许的字符。

location.replace('http://' + location.host + '/path/to/file.php?' + encodeURIComponent(queryStr));

参见 this post有关同一主题的其他信息。

关于JavaScript window.location 行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6704362/

相关文章:

javascript - 使用复选框中的 window.location.assign 添加多个 GET 参数到 URL

javascript - 带有发布/订阅的指令之间的 Angularjs 事件通信

Javascript,值类型作为引用

jquery - Bootstrap Youtube Modal 的按钮无法使用我无法修复的运行时错误进行测试

javascript - 传入off函数的匿名函数是什么意思?

javascript - 如何从窗口位置路径找到参数键?

javascript - 用户登录后如何重定向?

javascript - 暂时禁用 CSS 过渡效果的最干净的方法是什么?

javascript - Codeigniter 分页 URI 上的 ESCAPE PAGE NUMBER

javascript - Window.location 不工作我已经尝试了一切