我希望对URL进行编码,使其向服务器发送POST请求。这有可能吗?如果是这样,又是如何做到的呢?我已经搜索过了,大多数情况下,将参数附加到url中只会将它们作为GET请求的参数发送。对于POST请求,有没有这样做的方法?基本上,我正在尝试实现一个CSRF (不是为了恶意,而是为了测试目的),并且我希望能够通过编码我的url来向服务器发送POST请求。
发布于 2010-02-26 23:18:02
GET
和POST
是HTTP methods。在GET
中,请求参数作为请求URL中的查询字符串。在POST
中,请求参数作为请求正文中的查询字符串。
因此,无论使用什么工具来传递参数,您都需要使用POST
而不是(通常是默认的) GET
作为HTTP方法来传递参数。
无论哪种方式,参数只需要进行URL编码即可。POST或GET没有区别,除非您将内容编码设置为multipart/form-data
而不是(通常是默认的) application/x-www-form-urlencoded
。
如果您提供更多关于您正在使用的编程语言和/或库和/或框架的详细信息,那么我们也许能够给出一个更详细的答案,即如何调用HTTP POST
请求。
发布于 2010-02-26 23:21:48
不是的。该方法不是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);
...
https://stackoverflow.com/questions/2345461
复制