HTML 表单提交

1 投票
6 回答
687 浏览
提问于 2025-04-16 01:58

我正在查看一个外部网站的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&param2=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请求,并会忽略作为查询字符串传递的参数。

撰写回答