2012-01-14 104 views
2

本主題之前已經有過不同的討論,但我還沒有找到適合我的解決方案。我使用的是jquery 1.7.1。

我有一個可以返回JSON和XML的REST風格的Web服務,但是對於這個項目我需要使用XML端點。爲了解決跨域限制,我使用Perl的HTTP :: Proxy創建了一個透明代理。這個代理很容易,因爲我可以在任何地方與HTTP GET客戶端通信。

由於它是一個透明代理,它依賴於客戶端請求中設置的主機頭。我的代碼如下所示:

$.ajax({ 
    type: "GET", 
    crossDomain: true, // not needed I think 
    error: function() { alert('Failed ..'); }, 
    url: "http://www.skiforeningen.no:8080/<remote REST URL>", 
    dataType: "xml", 
    headers: {'Host': 'remote REST host'}, 
    success: parseXml, 
}); 

Chrome是非常明確的,並說

拒絕設定不安全頭 「主機」

的XMLHttpRequest無法加載http://www.skiforeningen.no:8080/sted/Norge/Oslo/Oslo/Skansebakken/varsel.xml。來源http://www.skiforeningen.no是不允許的訪問控制允許來源

但代理和HTML頁面與jQuery位於主機www.skiforeningen.no。

FF也拒絕設置主機頭(顯然),因爲錯誤事件處理程序被觸發。

感謝,

回答