2010-02-26 149 views
0

我想编码一个URL,以便它发送POST请求到服务器。那可能吗?如果是这样,怎么样?我搜索了四处,大多发现将参数附加到url只会将它们作为GET请求的参数发送。有没有办法做到POST请求?基本上,我试图实现一个CSRF(不适用于恶意但测试目的),我希望能够通过编码我的URL发送POST请求到服务器。编码POST请求

+0

究竟你 “编码” 是什么意思?加密? – 2010-02-26 23:13:16

+0

这个网址是要在浏览器中使用吗?是否有代码将使用URL来联系服务器? – 2010-02-26 23:17:56

回答

2

GETPOSTHTTP methods。在GET中,请求参数作为请求URL中的查询字符串。在POST中,请求参数作为请求主体中的查询字符串。

因此,您需要指示您使用的任何工具通过请求主体传递参数,而不是请求URL以及HTTP方法POST而不是(通常为默认值)GET

无论哪种方式,参数只需要URL编码。 POST或GET没有区别,除非您将内容编码设置为multipart/form-data而不是(通常为默认值)application/x-www-form-urlencoded

如果您提供了关于您正在使用的编程语言和/或库和/或框架的更多详细信息,那么我们可以给出更详细的答案,以便如何调用HTTP POST请求。

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); 
... 
+0

对不起,如果我不清楚,好的,所以我想创建一个链接,当点击时,发送POST请求到Web服务器。此POST请求的行为与该服务器上的网页中的表单发送的POST请求的行为相同。我想要这个浏览器的URL。根据我的理解,不涉及任何代码。那有意义吗? – urfriend 2010-02-26 23:38:03

+0

你不能这样做的链接。如果你想做一个POST,使用表单提交按钮。您始终可以使用CSS对其进行设置,使其看起来像链接。 – bobince 2010-02-26 23:54:42

+0

添加了如何通过javascript触发表单提交的示例。它确实涉及代码,但它在onclick事件处理程序中都存在。 – 2010-02-27 01:54:11