2011-07-14 66 views
0

在域A(本地主機:8080)運行此代碼來訪問域B(本地主機)的unauthenticating REST serivce:訪問受限制的URI被拒絕 「代碼:」 1012

req = new XMLHttpRequest(); 
req.open('GET', 'http://localhost/rest/service'); 
req.send(); 

這工作得很好,我不要讓我的跨域迴應,因爲我有Apache就域B設置的響應頭:

Header set Access-Control-Allow-Origin "http://localhost:8080" 

但是如果我現在就認證轉REST服務,並嘗試運行了同樣的要求:

req.open('GET', 'http://admin:[email protected]/rest/service'); 

現在產生這個錯誤在Firebug:

Access to restricted URI denied" code: "1012 

我很困惑,我能成功地使跨域Ajax調用的認證服務繞過同源策略,但是當需要在認證服務的Firefox決定不允許Ajax調用?我如何解決這個問題,而不使用jsonp等,因爲生產服務器將無法提供PHP或Servlet託管。

+2

對於它的價值,原因火狐不允許以上是因爲規範禁止通過用戶名+密碼在跨域XHR的URI中。 –

回答

0

它很容易與jQuery 1.5 +,我建議你用你的JavaScript解決方案:

$.ajax({ 
    url: 'http://admin:[email protected]/rest/service', 
    crossDomain:true, // Here is the JSONP callback logic 
    success: function(data){ 
     console.log(data); // data is what comes back from your remote file 
    } 
}); 
+0

非常感謝!我沒有意識到它會如此簡單,只要我在看到類似的東西之前總是談論回調並需要服務器端代碼等等。 – CrashMaster

+0

它曾經是這樣的。 JQuery團隊岩石:) – AlienWebguy

相關問題