我有一个应用程序,我需要执行多个表单提交到外部站点。我希望表单提交打开新标签。
我所做的是使用javascript创建表单元素,然后我只做一个form.submit()
。我知道只有一个才能完成。
我正在寻找工作。一种方法是使用jsonp:
到目前为止我有这样的事情
$.ajax({ dataType: 'jsonp', url: path, type: "POST", async: "false", contentType: 'application/x-javascript', data: $('this').serializeArray(), success: function (html) { if (data != "") { var link = html; window.open(link,'', ''); //open's link in newly opened tab! } }, failure: function (html) { alert(html); } }); return false; });
然而即使我指定type
为post
,我在Chrome开发者工具中看到我实际上已经发送了。我猜这是因为window.open。
有人可以提出实现此目的的技巧/
谢谢
答案 0 :(得分:1)
我需要对外部网站执行多个表单提交。我希望表单提交打开新标签。我所做的是使用javascript创建表单元素,然后我只使用form.submit()。
如果您在HTML中将表单元素的target
attribute设置为"_blank"
,并将表单元素实例的action
property设置为循环中的每个外部URL(例如, ,设置网址,调用submit
;设置下一个网址,调用submit
),您应该可以多次提交表单。 (您可能必须在处理用户生成的事件时执行此操作,即使这样,我也不会绝对确定浏览器不会 - 也不应该 - 阻止多个新选项卡发布。)
但我会强烈推迟原来的要求,除非它绝对清楚给最终用户当他们点击该按钮时你要做什么不管。