HTML 表单提交
我正在查看一个外部网站的HTML表单(这个网站不是我自己维护的),它的格式如下:
<form onsubmit="return check(this)" method=post action=address.aspx target=ttPOST>
....
</form>
我希望能直接向这个外部网站发送数据,而不需要通过表单去点击提交。
我可以直接访问'address.aspx'这个网址,然后加上需要的输入参数吗?
我的目标是自动定期发送信息,这些信息是从网站上频繁变化的值中选择的。(我打算使用Python和AutoIt)
6 个回答
0
把 method
属性从 POST
改成 GET
。
想了解这两者的区别,可以在 这里看看。
你可以通过改变网址,使用 GET
参数的方式来访问外部网站,格式是 ?param1=val1¶m2=val2...
,不过要实现这个功能,你需要自己用javascript来写逻辑。
1
你可以使用 JQuery.post() 方法
<form action="#" class="myForm" method="post">
<input type="text" id="field1" name="field1" value="" runat="server" />
</form>
// Submit
<div onclick="submit();return false;">Submit</div>
然后,submit() 函数看起来像这样
function submit() {
$.post("address.aspx", $("form.myForm").serialize(), function(data, textStatus)
{
// Handle success or error
});
}
在后台代码中,你可以访问这些提交的变量
Request.Form["field1"]
1
我想说明一下,我不太清楚你是否想要在浏览器外部自动发布数据。其他人已经回答了如何通过网页上的脚本来实现这个功能,所以我想讲讲如果你是通过一个独立程序来做这件事,它是怎么工作的。
对于大多数编程语言,你可以找到一些工具来帮助你模拟网络请求。大多数情况下,这些工具都能让你发送一个“post请求”,并提供相关的数据。我不太懂Python和AutoIt,但一般来说,你只需要通过查看表单的HTML代码(或者检查发送到服务器的请求,这样更好)来获取名称和值的配对,然后发送一个post请求。
正如其他人所说,如果你只是想把值添加到网址上,那么服务器需要能够接受“get请求”而不是“post请求”。有时候你会发现服务器很乐意这样做(它们不在乎表单是怎么提交的,只要能收到数据就行),但有时候服务器会特别要求使用post请求,并会忽略作为查询字符串传递的参数。