【问题标题】:Post raw form data from web page从网页发布原始表单数据
【发布时间】:2025-12-11 04:20:03
【问题描述】:

我想使用直接的 DHTML 发送原始帖子数据,但不使用 XMLHttpRequest 对象。这是否可以做到这一点,例如,通过将 HTML 表单元素的发布数据强制为任意字符串?

【问题讨论】:

    标签: javascript http forms post dhtml


    【解决方案1】:

    您可以轻松生成类似于 POST 请求的字符串。 POST 和 GET 之间没有太大区别。使用 GET,将参数添加到 url 后面。 POST 时,参数以相同的方式添加,但在标题下方。

    有关示例,请参阅 developers.sun.com

    【讨论】:

    • 谢谢,但我正在寻找一些可以解决问题的纯 HTML/Javascript。我的任意数据必须作为原始 POST 数据传输,而不是作为查询字符串。
    【解决方案2】:

    在发布表单之前,您可以动态地将 html 输入元素(带有值)添加到表单中,然后调用 form.sumbit()。这仍然会刷新页面。

    我知道在不刷新页面的情况下发布数据的唯一方法是使用 XMLHttpRequest 对象。使用 jQuery 使整个操作变得非常简单 http://api.jquery.com/jQuery.post/ ,所以我不确定你为什么不想使用 ajax 来完成这个?

    【讨论】:

    • 我不介意刷新页面;关键是我不想被绑定到 name1=value1&name2=value2 格式。我正在寻找一种能够以任意格式发布数据的方法,我将使用 XMLHttpRequest(或诸如 jQuery 之类的库)作为最后的手段。
    • 除了通过 html 输入元素之外,没有办法(据我所知)将数据分配给表单。但是,创建一个简单的实用程序函数来完成繁琐的工作并不难,因此您可以在其余代码中专门使用任意格式。
    • 所以,你的答案是:如果我想要一个任意的 postdata 格式,我必须使用 XMLHttpRequest 对象来实现它。为了避免跨浏览器实现的麻烦,我可以使用 jQuery。这对我来说已经足够了。
    • 为了清楚起见,您仍然必须将至少一个数据字段作为 key:value 发布 - 这是服务器期望数据到达的方式。当然,您仍然可以将所有语义放入一个 long 值中。