【问题标题】:Submitting multiple forms to a webpage向网页提交多个表单
【发布时间】:2020-02-19 05:55:49
【问题描述】:

我每天都在手动填写游戏表格,并希望将流程自动化。除了每次发送到不同的“国家”之外,每个表格都是相同的,所以我想创建一个国家列表,然后遍历每个国家并为其发送一个表格。

当我尝试提交表单时,我的页面被重定向,因此我尝试使用 iframe 保留在当前页面上,以便它可以为每个国家/地区发送表单。我被困在这里,不知道下一步该怎么做。使用 iframe 是正确的方法,还是我需要考虑使用 XMLHttpRequest

它会自动填写输入表单,但不会将它们发送到服务器。

编辑:基本上我要做的是向网站发送指令以自动将“项目”发送到一堆“国家”。 通常这是通过在相关网站上的表格中输入数据,然后通过“撤回”按钮将其发送一个来完成的。

我正在尝试构建的脚本会自动为一系列国家执行此操作。

该站点使用 CSRF 令牌,因此脚本需要获取所需的 CSRF 令牌并随其发送数据以使其被接受。

<HTML>
<body onload="sendForms()">

<form action="https://thewebsiteurl.com" id="autosend" target='formresponse'>

    <input type="text" name="item1" value="5000">
    <input type="text" name="item2" value="10">
    <input type="text" name="recipient" id="nationName" value="">

</form>

<div class='iframe_container'>
<iframe name='formresponse' width='1440px' height='850px'></iframe>
</div>

</body>


<script>
var nations = ["Nation1", "Nation2","Nation3","Nation4"];

function sendForms() {

    for (i = 0; i < nations.length; ++i) {
        document.getElementById("nationName").setAttribute("value", nations[i]);
        document.getElementById("autosend").submit();
    }
}
</script>



</HTML>

我已经阅读了我能找到的与此问题相关的大部分文档,但很难解释和实施它,包括尝试实施 XHLHttpRequest()xhr.send()

【问题讨论】:

  • @KiranMistry 是的,我从那里得到 iframe 代码,我错过了什么吗?

标签: javascript html forms iframe


【解决方案1】:

试试这个。使用过 jQuery

编辑:添加 ajax 调用

<HTML>
<body onload="sendForms()">

<form action="#" id="autosend">

    <input type="text" name="item1" value="5000">
    <input type="text" name="item2" value="10">
    <input type="text" name="recipient" id="nationName" value="">

</form>
</body>
<script>
var nations = ["Nation1", "Nation2","Nation3","Nation4"];

function sendForms() {

    for (i = 0; i < nations.length; ++i) {
        document.getElementById("nationName").setAttribute("value", nations[i]);
        $("#autosend").trigger("submit");
    }
}
$("#autosend").submit(function(e){
  e.preventDefault();

  $.ajax({
    url: "https://thewebsiteurl.com?"+$( this ).serialize(), 
    success: function(result){
      console.log("success :"+result);
    },
    type:'POST',
    error:function(result,code){console.log("failed")}
  }); 
});

</script>
</HTML>

【讨论】:

  • PHP 获取请求是否可以包含在其中或指向?有问题的网站使用随机生成的令牌来验证个人。可以从 html 中获取令牌。我们现在不需要target='formresponse'&gt; 对吗?
  • @Sinn 正确,不再需要目标。编辑答案。
  • @Cinn 是的,只需在 ajax 请求中添加类型参数作为 'GET' 和 url 中的 php 路径。或者您可以在帖子正文中发送带有表单参数作为 'data' 的帖子请求。
  • 我遇到的问题是这根本没有发布到服务器,实际上它返回了 GET code 200 知道我错过了什么吗?
  • @Cinn 200 是成功的。需要有关您的服务器的更多详细信息。这可能是服务器代码的问题。
猜你喜欢
  • 2013-10-22
  • 1970-01-01
  • 1970-01-01
  • 2014-09-17
  • 1970-01-01
  • 2016-03-21
  • 1970-01-01
  • 1970-01-01
  • 2023-03-09
相关资源
最近更新 更多