【问题标题】:javascript location href changed queryString (&gt to >)javascript 位置 href 更改 queryString (&gt to >)
【发布时间】:2014-02-12 21:49:09
【问题描述】:

我的页面中有以下代码。

var url = "http://localhost/login.aspx?returnUrl=/ABC/abc.aspx&gt_no=1234567&code=SC"; window.location.href = 网址; 脚本>

当我加载页面时,它会重定向到

http://localhost/login.aspx?returnUrl=/ABC/abc.aspx>_no=1234567&code=SC

参数&gt_no改为>_no

有什么方法可以让&gt_no在重定向后保持不变?

在我的项目中,不允许使用其他参数名称代替&gt_no

问题不仅仅发生在本地主机中。

谢谢!

【问题讨论】:

  • 第一个参数不是gt_no 怎么样? :)
  • 你无法控制谷歌
  • 没有人可以,除了他们自己
  • 我没有使用 google.com。只是一个例子,浏览器将 &gt_no 更改为 >_no,而不是 google.com
  • 我已经检查过了。它工作正常............

标签: javascript


【解决方案1】:

您已经遇到了一种情况,即您生成了一个 HTML 编码的值,即使您不是故意的 :)

&gt大于 字符的 HTML 编码值 - >。您可以尝试确保您的 gt_no 参数是第一个参数。这样,它就不会出现在 & 号 (&) 字符旁边,也不会被解释为 HTML 编码值。

【讨论】:

  • > 是 HTML 编码值。 URL 编码值将是 %3E
  • @JustinNiessner -哎呀!你是对的!感谢您的反馈!
  • 另外关于参数位置的部分是错误的。它想成为 first 参数,因此不需要&;第一个参数之后的任何参数确实需要& 来表明它是一个新参数,而不是前一个参数的一部分。
  • @AnthonyGrist - 谢谢。你是 100% 正确的。
  • 谢谢。我知道 ?gt_no 没问题。但是没有其他方法可以解决这个问题吗?
【解决方案2】:

您可以尝试对导致问题的 & 符号进行 URL 编码:

var url = "http://localhost/login.aspx?returnUrl=/%26gt_no=1234567&code=SC";

【讨论】:

  • 这不会作为查询字符串
【解决方案3】:
var url = "http://www.google.com/login.aspx?    
returnUrl=/ABC/abc.aspx&gt_no=1234567&code=SC";
window.location.href = url;

【讨论】:

    猜你喜欢
    • 2011-06-30
    • 2017-09-01
    • 1970-01-01
    • 2017-03-22
    • 2012-02-02
    • 2021-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多