2台のサーバーにフォームを送信できるようにしたい。これが理由です(これを行うためのより良い方法があれば、私はすべての耳です)
MechanicalTurkにiframeを埋め込んでいます。iframeにはフォームがあります。
労働者がフォームを提出するとき、私は2つのことをする必要があります:
すぐにいくつかのアクションを実行できるように、ローカルサーバーに通知する必要があります。次のジョブがturkで表示されるように、結果をmturkに投稿する必要があります。
これを行わないと、サーバーがturkをポーリングしてジョブを完了する必要があり、これは非効率的です。
複数のスキームを試しましたが、機能させることができませんでした。
次のようなコードを使用して、ajaxを使用してローカルで1つの投稿を行い、1つのフォームを送信しようとしました。
<%= form_for(@task, :url => "http://workersandbox.mturk.com/mturk/externalSubmit",
:remote => true, :method => "post", :authenticity_token => false) do |f| %>
....
そして私の目立たない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.
サーバーを制御できないため、この問題を修正できません。
これを行う正しい方法についての提案は、ありがたいことに受け入れられます。