我想在JavaScript中使用XMLHttpRequest发送一些数据 .
假设我在HTML中有以下表单:
<form name="inputform" action="somewhere" method="post">
<input type="hidden" value="person" name="user">
<input type="hidden" value="password" name="pwd">
<input type="hidden" value="place" name="organization">
<input type="hidden" value="key" name="requiredkey">
</form>
如何在JavaScript中使用XMLHttpRequest编写等效文件?
8 回答
下面的代码演示了如何执行此操作 .
或者,如果您可以依赖浏览器支持,则可以使用FormData:
使用现代JavaScript!
我建议调查
fetch
. 它是ES5的等价物并使用Promises . 它更易读,更容易定制 .更多信息:
Mozilla Documentation
Can I Use (88% Mar 2018)
Matt Walsh Tutorial
最少使用FormData提交AJAX请求
备注
这不完全回答OP问题,因为它要求用户单击以提交请求 . 但这对于寻找这种简单解决方案的人来说可能是有用的 .
此示例非常简单,不支持
GET
方法 . 如果你对更复杂的例子感兴趣,请看看优秀的MDN documentation . 另见similar answer about XMLHttpRequest to Post HTML Form .此解决方案的局限性:正如Justin Blank和Thomas Munk(参见他们的评论)所指出的,IE9及更低版本以及Android 2.3上的默认浏览器不支持
FormData
.没有需要的插件!
只需在 BOOKMARK BAR 中拖动任何链接(即THIS LINK)(如果您没有看到它,从浏览器设置启用),然后 EDIT 链接:
并插入javascript代码:
That's all! 现在您可以访问任何网站,然后单击 BOOKMARK BAR 中的该按钮!
注意:
上面的方法使用
XMLHttpRequest
方法发送数据,因此,您必须在触发脚本时位于同一个域中 . 这就是为什么我更喜欢使用模拟的FORM SUBMITTING发送数据,这可以将代码发送到任何域 - 这里是代码:确保您的Backend API可以解析JSON .
例如,在Express JS中:
我遇到过类似的问题,使用相同的帖子而且这个link我已经解决了我的问题 .
这link已完成信息 .