2013-12-09 295 views
2

我們正試圖從瀏覽器訪問本地自託管的WCF服務。
WCF服務位於http://localhost/myWcf
瀏覽器運行的網站位於https://some.www.com在IE中,是否可以從https到http進行跨域請求?

我們已經啓用了CORS並添加CORS頭託管WCF。使用jQuery的$ .ajax調用完成對WCF服務的訪問。所有瀏覽器在不使用SSL的情況下工作正常,我們正在進行「成功」回調。
切換到SSL時,IE是唯一無法發出請求的用戶 - 「訪問被拒絕」。我們將網站移至受信任的網站部分,基本上允許所有內容,但仍然無法執行。我們使用的是IE11/10,我們已經通過它的模擬器嘗試過以前的版本。他們中沒有人允許我們提出這一要求。

我們可以解決位於HTTP從HTTPS這樣的畫面:

<img src="http://asdasd"> 

但我們嘗試使用JavaScript失敗:

var img = new Image(); 
img.src="http://asdasd"; 

我們有什麼缺失?在IE中,從https到http發出跨域請求真的不可能嗎?

+0

您可以解決這個問題,因爲在IE中沒有圖像的單一來源策略,但有安全的非安全XHR的原始策略。 –

+0

@DanielWaters有什麼方法可以使它工作? –

+0

下面的PKolos答案可以工作,但是原產地策略存在原因,特別是對於安全連接。您是否沒有辦法通過自簽名證書來創建HTTP端點HTTPS? –

回答

2

檢查JSONP:

var script = document.createElement('script'); 
script.id = 'dynScript'; 
script.type='text/javascript'; 
script.src = 'http://localhost/myWcf'; 
document.getElementsByTagName('head')[0].appendChild(script); 

JSONP是一個偉大的客場繞過跨域腳本錯誤。