2014-10-31 111 views
2

通過擺弄它似乎IE11不會發出ajax請求,如果它是跨越原點。如果資源API沒有發送必要的頭文件,FF和Chrome將至少發出請求並拋出錯誤。在我的情況下,資源API(Web API 2.0)是adding required headers,如果IE發出請求,它將會很有幫助,但事實並非如此。IE11不啓動CORS請求

客戶端的JavaScript:

jQuery.support.cors = true; 

$.fn.somePlugin = function() { 
    $.ajax({ 
     url: apiUrl + '/articles/list/', 
     type: 'GET', 
     crossDomain: true 
    }).done(
     function (data, textStatus, xhr) { 
      console.log('hello world!'); 
     }); 
    return this; 
} 

Ajax請求上述工作完全在Chrome和FF但不是在IE11。

我已經試過:

  1. 增加XDomainRequest.js參考無任何影響。
  2. 在IE安全選項中啓用交叉源請求 - 儘管在每臺客戶端計算機上都這樣做似乎很奇怪。無論如何,它沒有任何區別。
+0

我剛剛在IE 11上試過這個http://www.w3schools.com/ajax/tryit.asp?filename=tryajax_get,它工作正常。問題在別的地方。 – 2014-10-31 20:10:39

+0

@PiotrŁużecki我正在使用jQuery $ .ajax和$ .getJSON方法。不想將我的所有代碼更改爲純XMLHttpRequest對象。 – joym8 2014-10-31 20:14:02

+1

@PiotrŁużecki另外,我沒有看到您在示例代碼中發出跨源請求的位置。 – joym8 2014-10-31 20:37:04

回答

0

我遇到了同樣的問題。我無法使用XMLHttpRequest(),$ .ajax()或$ .ajax快捷方式檢索任何CORS數據。問題原來是本地主機(IIS WinPro7)。每AJAX CORS請求被預檢其產生的

來源http://localhost在訪問控制允許來源頭未找到

誤差,隨後

的XMLHttpRequest:網絡錯誤0X80070005,訪問被拒絕

當我將HTML頁面移動到網絡服務器時,它工作正常。

+0

我的api和客戶端都已經存在於IIS網絡服務器上。 – joym8 2016-02-22 15:51:30