2011-11-08 30 views
0

我有一個iframe,我試圖發送XMLHttpRequest。這裏是請求代碼 -從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){} 

它發送請求的網址在Django中實現。當我嘗試以chorme發送此請求時,出現以下錯誤 - 「XMLHttpRequest無法加載iframe-url,Access-Control-Allow-Origin不允許使用原始http://example.com」。

我發現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