2011-10-28 21 views
5

投稿のクロスドメインリクエストを行いたい、リクエストを送信するiframeをターゲットとしたフォームを使用します。iframe to(クロスドメイン)投稿リクエストの使用方法?

var iframe = document.createElement("iframe"); 

var uniqueString = "CHANGE_THIS_TO_SOME_UNIQUE_STRING"; 

document.body.appendChild(iframe); 

iframe.style.display = "none"; 

iframe.contentWindow.name = uniqueString; 


var form = document.createElement("form"); 

form.target = uniqueString; 

form.action = myUrl; 

form.method = "POST"; 


// repeat for each parameter 

var input = document.createElement("input"); 

input.type = "hidden"; 

input.name = "setting"; 

input.value = params; 

form.appendChild(input); 

document.body.appendChild(form); 

form.submit(); 

iframe.onload = iframe.onreadystatechange = function(){ 

if(this.readyState && this.readyState!="complete") return ; 

else{                    
     alert("haha");             
} 
}; 

ChromeはインラインフレームをリモートURLから返されたデータを受信して​​いる示しているが、私はJavascriptを使用してiframeのコンテンツを取得することはできませんか?皆さんにはアドバイスや解決策がありますか?

+0

[ネストされたiframeのクロスドメイン通信]の複製が可能です(http://stackoverflow.com/questions/1142215/nested-iframe-cross-domain-communication) –

答えて

2

GUIDを使用してフォームにパラメータを追加する必要があります。サーバーはセッション内に特定の回答を含むGUIDを保存する必要があります。 その後、サーバーで使用したGUIDを使用してサーバーと呼ばれるフォームをJSONP経由で送信し、サーバーはセッションで保存したasnwersを返す必要があります。

+0

uを取得できません。どういう意味ですか?私たちはiframe経由でデータを投稿したいと考えています。 Jsonpは投稿要求をサポートしていません。それは唯一の取得 – anasanjaria

関連する問題