我希望能够将表单提交到两台服务器。这就是为什么(如果有更好的方法做到这一点,我是所有的耳朵)向两台服务器提交表单
我有一个iframe嵌入机械土耳其人。 iframe中有一个表单。
当工作人员提交表单,我需要做两件事情:
我需要通知我的本地服务器,这样我可以采取一些行动的时候了。 我需要将结果发布到mturk,以便turk显示下一个作业。
如果我不这样做,我的服务器需要轮询turk工作完成,这是效率低下。
我试过多种方案,但无法让他们工作。
我曾尝试使用AJAX做当地一个帖子,一个表单提交,使用的代码如下所示:
<%= form_for(@task, :url => "http://workersandbox.mturk.com/mturk/externalSubmit",
:remote => true, :method => "post", :authenticity_token => false) do |f| %>
....
,并在我的unobstrusive JS文件
$(form).post({url: "/notify",opt, function() {console.log("notify done")});
此结果在js错误
XMLHttpRequest cannot load http://workersandbox.mturk.com/mturk/externalSubmit. Origin http://mytest.herokuapp.com is not allowed by Access-Control-Allow-Origin.
我无法控制服务器,所以我无法解决这个问题。
任何有关这样做的正确方法的建议将受到感谢。
直接从客户端进行双重提交是一种可怕的方法。如果两台服务器需要这些数据,然后将表单提交到一个(本地服务器)上的脚本,该脚本执行自己的处理,并作为其他服务器的代理 - 即。发出自己的HTTP请求。有了这个想法,你应该能够从本地服务器到客户端做出单一的回应,涵盖两个方面。 – 2013-03-27 03:00:44
是的,这就是我想要做的 - 但表单提交必须从客户端完成,以便turk可以转发到下一张图片。从服务器执行POST不会刷新iframe,因为turk服务器无法更新它 – 2013-03-27 03:19:36
但“下一个图像”当然只是一个url,它可以通过响应中的“传送”。 – 2013-03-27 03:23:39