我正在尝试获取一个javascript脚本(确切地说,在Safari扩展中运行),以便将大量字符串发送到我服务器上的PHP脚本。我通过构建一个包含变量的URL来实现它,但是我想使用POST来实现它更安全,并且其中一个传递的变量有一个'&'在它。
有没有办法可以做到这一点?谢谢!
答案 0 :(得分:1)
有几件事:
首先,您可以使用javascript中的escape()函数 通过URL安全地发送数据:
window.location="myscript.php?company=" + encodeURIComponent("Ben & Jerry's Ice Cream");
然后你可以使用urldecode()函数解码PHP中的值:
$company = urldecode( $_GET["company"] );
然后您将获得与输入完全相同的值。
重要的是要意识到无论是通过POST还是GET发送数据,都必须对数据进行编码。它们的格式相同,使用&用于分隔键/值对的标志。
您的第二个选择是使用Ajax(正如许多其他人提出的那样)。这具有不刷新页面的效果。这可能是也可能不是,但那将会发生。
如果您不想使用Ajax调用,则第三个选项是您只需在页面上放置一个表单:
<form name="myform" method="POST" action="MyPhpScript.php">
<input type="hidden" name="value1" />
<input type="hidden" name="value2" />
</form>
然后,从javascript中,设置隐藏的表单值并提交表单。
选择你的毒药 - 你有很多选择:)
答案 1 :(得分:0)
答案 2 :(得分:0)
是的,您不需要使用AJAX。您可以使用HTTP POST请求。这基本上是一个HTML表单。当然,如果您希望将数据传递给PHP而网页访问者不必单击某些内容,则需要使用Javascript提交表单(可以使用隐藏元素),或使用AJAX(xmlhttprequest)。随意提出更具体的问题。
答案 3 :(得分:0)
一个不同的解决方案,我在我的一个项目中使用它:使用cookie
从javascript重新加载页面设置cookie并在php中获取