두 개의 서버로 양식을 제출할 수 있기를 원합니다. 여기에 이유가있다. (더 좋은 방법이 있다면, 나는 모두 귀다.)두 서버에 양식 제출
나는 mechanical turk에 iframe이있다. iframe에는 형식이 있습니다. 내가 지금 당장 어떤 조치를 취할 수 있도록 내 로컬 서버에 통지 할 필요가
: 작업자가 양식을 제출하면
, 나는 두 가지 작업을 수행해야합니다. 다음 작업이 터크에 표시되도록 mturk에 결과를 게시해야합니다.
이렇게하지 않으면 내 서버가 작업 완료를 위해 터크를 폴링해야하므로 비효율적입니다.
여러 스키마를 시도했지만 작동하지 못했습니다.
<%= 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")});
이 결과를 파일 :
나는 다음과 같다 코드를 사용하여 로컬 한 후, 하나 개의 양식 제출을 할 아약스를 사용하는 것을 시도했다 in a js error
XMLHttpRequest cannot load http://workersandbox.mturk.com/mturk/externalSubmit. Origin http://mytest.herokuapp.com is not allowed by Access-Control-Allow-Origin.
나는이 문제를 해결할 수 없으므로 서버를 제어 할 수 없습니다.
이렇게하는 올바른 방법에 대한 제안은 감사하게 받아 들여질 것입니다.
클라이언트에서 직접 제출하는 것은 대단한 접근 방식입니다. 두 서버가 데이터를 필요로하는 경우 양식을 하나의 스크립트 (로컬 서버)에 제출합니다.이 스크립트는 자체 처리를 수행하고 다른 서버의 프록시 역할을합니다. HTTP 요청을 자체적으로 만듭니다. 생각을하면 로컬 서버에서 클라이언트로 단일 응답을 할 수 있어야하며 두 가지 측면을 모두 포함해야합니다. –
예, 그게 내가하고 싶은 것입니다. 그러나 양식 제출은 클라이언트에서 수행되어야하므로 터크는 다음 이미지로 전달할 수 있습니다. 서버에서 POST를 수행하면 터크 서버에 업데이트 할 방법이 없으므로 iframe을 새로 고치지 않습니다. –
하지만 "다음 이미지"는 응답의 "파이프 통과"할 수있는 URL 일 것입니다. –