2011-11-08 4 views
0

XMLHttpRequestを送信しようとしているiframeがあります。ここにリクエストコードがあります -iframeからDjangoを実行しているサイトへのXmlHttpRequestが失敗する

x=w.XMLHttpRequest?new XMLHttpRequest():(w.ActiveXObject?newActiveXObject('Microsoft.XMLHTTP'):0); 
try{ 
if(!x)throw(0); 
    x.open('GET','<url>',true); 
    x.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); 
    x.onreadystatechange=function(){ 
    if(x.readyState==4){ 
     if(x.status==200){ 
      try{ 
       alert('hi'); 
      } 
      catch(e){} 
     } 
     else { } 
    } 
    }; 
    x.send('a=blah'); 
}catch(e){} 

リクエストを送るURLはDjangoに実装されています。 "XMLHttpRequestはiframe-urlをロードできません。Origin http://example.comはAccess-Control-Allow-Originによって許可されていません。"というエラーメッセージが表示されます。

thisミドルウェアがdjangoに見つかりましたが、動作しませんでした。私はdjangoのドキュメントで "Access-Control-Allow-Origin"を許可する方法も見つけられませんでした。どんな助けもありがたい。

答えて

1

このミドルウェアは問題を解決します - https://gist.github.com/426829 私はそれを間違った方法で追加しました。

+0

私も同じです。私はあなたがもう少しあなたのために働いた方法を説明することができますか?私は同じミドルウェアを使用しており、ルックバックと同じエラーをゲットするためのシンプルなjQueryリクエストを実行しています。前もって感謝します。 – sbidwai

+0

settings.pyで次の行をMIDDLEWARE_CLASSESに追加します - ' .crossdomainxhrmiddleware.XsSharing'とミドルウェアコードをcrossdomainxhrmiddleware.pyという名前のファイルにコピーします。app_nameはこのミドルウェアを使用するアプリケーションの名前です。 – arank

関連する問題