我想对URL进行编码,以便向服务器发送POST请求。那可能吗?如果是的话,怎么样?我已经搜索过并且大多数发现将参数附加到url只会将它们作为GET请求的参数发送。有没有办法为POST请求? 基本上,我正在尝试实现CSRF(不是出于恶意但是测试目的),我希望能够通过编码我的URL向服务器发送POST请求。
答案 0 :(得分:2)
GET
和POST
是HTTP methods。在GET
中,请求参数被视为请求URL中的查询字符串。在POST
中,请求参数被视为请求正文中的查询字符串。
因此,您需要指示您使用的任何工具通过请求正文而不是请求URL以及POST
的HTTP方法而不是(通常是默认值)GET
传递参数
无论哪种方式,参数只需要进行URL编码。 POST或GET没有区别,除非您将内容编码设置为multipart/form-data
而不是(通常是默认值)application/x-www-form-urlencoded
。
如果您提供有关您正在使用的编程语言和/或库和/或框架的更多详细信息,那么我们可以提供更详细的答案,了解如何调用HTTP POST
请求。
答案 1 :(得分:1)
没有。 该方法不是Url的一部分。您必须以使用post方法的方式发出请求。 您没有提及任何细节,但如果它来自浏览器中的文档,您可以使用表单:
<FORM action="someUrl.htm" method="post">
您可以创建一个通过javascript发送表单的链接:
<form action="http://www.example.com/?param=value" method="post" id="someForm">
<a href="#" onclick="document.getElementById('someForm').submit();">link</a>
</form>
或带有javascript的XmlHttpRequest:
var xhr = new XMLHttpRequest();
xhr.open("POST", url);
...