在具有多个get请求的url中,无法使用%26或%amp作为&符号

时间:2017-01-03 13:56:20

标签: javascript

我的网址如下

        document.writeln("<form name='statistics' action='submit.php?p='+precision+'&amp;r='+recall+'&amp;a='+accuracy; onsubmit='return validateForm()' method='get'>")
        document.writeln("<button style = 'font-size: 32px; float : right'class = 'button' > See results </button>")
        document.writeln("</form>")

网址字符串

'submit.php?p='+precision+'&amp;r='+recall+'&amp;a='+accuracy;

我也试过

'submit.php?p='+precision+'%26r='+recall+'%26a='+accuracy;

然而,在浏览器中也没有给我&符号。

我在浏览器中获取的两个案例的网址如下 -

http://localhost/WT2ASST1/submit.php?p=1r=0.4a=0.4

我没有在表单提交和网址上添加任何其他相关代码。

我需要做什么才能在我的网址中输入&符号?

2 个答案:

答案 0 :(得分:0)

你正在使用错误的字符串连接。 这应该有效:

document.writeln("<form name='statistics' action='submit.php?p="+precision+"&amp;r="+recall+"&amp;a="+accuracy+"' onsubmit='return validateForm()' method='get'>");
document.writeln("<button style = 'font-size: 32px; float : right'class = 'button' > See results </button>");
document.writeln("</form>");

注意:如果要连接字符串,则必须使用正确的字符串分隔符,例如: “测试” + VAR + “测试” 不是“测试'+ var +'测试”

答案 1 :(得分:0)

这应该给你&符号(它为我做了)

document.writeln("<form name='statistics' action='submit.php?p='+precision+'&amp;r='+recall+'&amp;a='+accuracy; onsubmit='return validateForm()' method='get'>")

但是,整个事情都是双引号,所以+将是一个文字字符串而不是一个运算符。在第二种情况下,您有一个编码的URL。 Document.write不会为你神奇地解码那些。你可以使用decodeURI功能,但如果你只是使用文字&#34;&amp;&#34;那么它就是一样的。开头。

使用第一种方法,但使用双引号指示每个字符串的结束位置以及要连接变量的位置。像这样

document.writeln("'submit.php?p='"+precision+"'&amp;r='"+recall+"'&amp;a='"+accuracy);

快速说明一下,如果你没有将它们用于分离GET变量的预期目的,你只会对&符号进行编码;这就是你如何使用它们。对这些进行编码可能会让服务器感到困惑。