我从数据库中获取值并通过url作为请求发送它们,并且当没有&现在,我假设我的请求看起来像value=something&value2=something with amp &
如何直接在网址中用&
替换所有&
个出现,是否可以直接在请求中编写javascript?
答案 0 :(得分:2)
这几乎肯定会引发争论!
我对你的问题的理解是这两个问题之一:
当我的数据包含符号(&)时,如何在查询字符串中传递数据。
正确的答案是你逃避它......
value=something%26with%26ampersands&value2=hello
你也需要逃避许多其他角色。
当&符号(&)使我的标记无效时,如何在网页上编写链接
从技术上讲,你应该写这样的链接......
<a href="mypage?value=hello&value2=world">Hello World</a>
这可以防止您的标记被“实体混淆”作为&amp; character表示一个实体。
两者一起
<a href="mypage?value=something%26with%26ampersands&value2=world">Hello World</a>
可以使用JavaScript转义地址
您可以使用:
var myAddress = escape("value=something&value2=something");
但它可能不会做你想要的。它将编码特殊字符 - 但不是* @ - _ +。 /
这意味着你会得到所有&amp;替换为%26 ...
服务器端语言可以更好地完成这项工作 - 您使用的是哪种语言?
答案 1 :(得分:0)
这听起来像是在构建该URL时要解决的问题,因此服务器端技术是问题,而不是像Javascript这样的客户端技术(除非您使用node.js等)。
在发出请求时,您应该使用URL编码,而不是使用HTML编码。如果您使用PHP从数据库中读取,urlencode
函数将起作用。
<?php
echo urlencode('foo&bar'); // foo%26bar
?>
答案 2 :(得分:0)
如果我正确理解了您要执行的操作,请不要将&
更改为&
,而是将其更改为%26
这是网址转义版本。在提交数据之前,请尝试通过escape([string parameter])
运行数据。
答案 3 :(得分:0)
您可以使用encodeURIComponent
:
var q = encodeURIComponent("value=something&value2=something with amp &");
你会得到:
"value%3Dsomething%26value2%3Dsomething%20with%20amp%20%26amp%3B"