怎样将一个form提交给多个后台?

代码该怎么写,请举例说明

阅读 4.9k
7 个回答

大概这样子。。。

//多个提交链接列表
var postList = [{
  url : 'url1',      // 提交地址
  cb  : function(){} //提交该地址成功后的回调
},{
  url : 'url2',
  cb  : function(){}
},{
  url : 'url3',
  cb  : function(){}
}];

//遍历提交链接列表,逐个提交
postList.forEach(function(item){
  $.post(item.url, { name: "John", time: "2pm" },item.cb);
});

多个ajax不可以吗?

用js可以实现的啊

JQ的serialize()方法就是将form表单整个提交的,你可以看一下这个方法

最简单的

<form action="/users/login" method="post"> // action="提交的路由"(这是关键,后台要有处理这个路由的方法)  
    <input type="text" name="username" />       
    <input type="password" name="pwd" />
                  
    <input type="submit" value="登录"/>   //提交按钮,点这个就提交了
</form>

相当于多个表单同时提交,使用form直接提交时完成不了的,因为没有表单提交完了之后会跳转页面,必然无法同时完成多个表单提交

  • ajax提交

var actions = [url1,url2,url3];
actions.foreach(function(url){
   $.post(url,data,callback);//更多方法见jq手册 
});
  • 如果html中没有form表单实体,可以用formdata对象,说到第还是得用ajax

var oMyForm = new FormData();

oMyForm.append("username", "Groucho");
oMyForm.append("accountnum", 123456); // 数字123456被立即转换成字符串"123456"
var actions = [url1,url2,url3];
actions.forEach(function(url){
    var oReq = new XMLHttpRequest();
    oReq.open("POST",url );
    oReq.send(oMyForm);
});

详情见https://developer.mozilla.org...

一个表单提交给多个后台没意义。

如果是一个系统,完全没必要提及到多个后台。

如果是多个系统,也只需要提交到一个后台就好了,可以再以接口的形式推送到其他几个系统。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题