【问题标题】:Redirect with javascript "&" in url在 url 中使用 javascript "&" 重定向
【发布时间】:2015-10-26 18:53:36
【问题描述】:

我正在尝试使用 JavaScript 重定向到附属链接。 问题是 url 包含 & 在重定向后更改为 &

location.href ="http://affiliatelink.com/?a=xxxxx&e=xxxx"

将在网络浏览器中更改为

http://affiliatelink.com/?a=xxxxx&e=xxxx

在网址中使用& 时,附属链接不起作用。

我该如何解决这个问题? encodeURIComponent()?

【问题讨论】:

  • 请向我们展示您的代码。
  • 请使用相关源代码更新您的问题。谢谢。
  • 我正在尝试使用 Javascript 重定向到附属链接。问题是 url 包含“&”,它添加了 amp;在重定向后的网址中。 location.href ="affiliatelink.com/a=xxxxx&e=xxxx" 将在 Web 浏览器中更改为 affiliatelink.com/a=xxxxx&(amp;)e=xxxx(不带“()”)。带放大器;在网址中,附属链接不起作用。我该如何解决这个问题?编码URIComponent()?
  • 浏览器没有理由将 & 更改为 & - 更有可能是服务器这样做。尝试捕获重定向。在解释性评论中重复您问题的完整文本也不会增加我们的理解。
  • 链接是在哪里生成的?它应该只是转到 url 而无需将 & 更改为 &

标签: javascript jquery url redirect url-redirection


【解决方案1】:

这是因为你把你的url从后面的代码中转移过来了,也许你可以尝试像javascript中的硬编码一样在前端处理url,然后你的问题就解决了。

在我的情况下,我从 xml(web.config) 收集我的 url 并且 xml 应该使用 & ,所以我改变了在 xml 中放置 parameter(url) 的方式,而不是将 parameter(url) 放在javascript。

供您参考! :)

【讨论】:

    【解决方案2】:

    是的,你需要%encode这个URL加上encodeURIComponent函数...

    encodeURIComponent('&') >> "%26"
    

    通过弹出 encodeURIComponent 函数括号中的 URL 来执行此操作...

    var myURL = 'http://address.web/?info=data&info=data';
    var encodeURL = encodeURIComponent( myURL );
    

    ...或者您可以使用传统的字符串.replace() 方法...

    var reg = new RegExp( '&', g );
    var myURL = 'http://address.web/?info=data&info=data';
    var encodeURL = myURL.replace( reg, '%26' );
    

    第一种方法的优点是可以捕获所有%encode-able 字符,而第二种方法只处理&s。

    【讨论】:

    • 为什么以及在哪里使用它?您的网址示例中甚至没有 &
    猜你喜欢
    • 1970-01-01
    • 2014-06-26
    • 1970-01-01
    • 1970-01-01
    • 2016-06-23
    • 2020-09-07
    • 2015-07-07
    • 2013-08-20
    • 2012-10-04
    相关资源
    最近更新 更多