2014-05-23 8 views
9

Wygląda na to, że wersja IE11 11.0.7 (KB2929437 na Win7, KB2919355 na Win 8.1) ma problem podczas wykonywania operacji POST Ajax. Operacja zwraca stan 0 i na konsoli F12, pojawia się następujący błąd:IE11 zwraca status 0 podczas operacji Ajax POST z elementu iframe (XMLHttpRequest: błąd sieci 0x2ee4)

SCRIPT7002: XMLHttpRequest: Network Error 0x2ee4, Could not complete the operation due to error 00002ee4. 

Warunki do odtworzenia tego problemu są następujące:

  1. zdarza się tylko na konkretnym IE11, czyli w wersji 11.0.7 (KB2929437 na Windows 7, KB2919355 na Win 8.1)
  2. ramka zostanie na załadowanie strony zewnętrznej z protokołu hTTPS (strona macierzystego, z wykorzystaniem protokołu hTTP)
  3. Ajax metodą „POST” jest używany
  4. Częściej zdarza się Connection: Keep-Alive nagłówek ustawiony przez IIS
  5. Częściej zdarza się od wersji Win32 IE11

stworzyłem następujące jsfiddle odtworzyć ten problem: http://jsfiddle.net/VJ2D6/12/

$(document).ready(function() { 
    $('#frame').attr('src', 'https://54.249.142.247/ie11/test.html'); 
}); 

Należy pamiętać, że element iframe pobiera swoje źródło z innej witryny 54.249.142.247 (hostowanej przez węzeł EC2 przy użyciu IIS7), ponieważ jsfiddle nie obsługuje protokołu HTTPS. A ponieważ używam certyfikatu SSL Self-Sign, najpierw zainstaluj certyfikat w Zaufanym katalogu głównym i wyłącz opcję "Ostrzegaj o niedopasowaniu adresu certyfikatu" w opcjach internetowych - karta Zaawansowane.

Wewnątrz pliku 54.249.142.247/ie11/test.html utworzyłem przycisk inicjujący operację Ajax POST do nieistniejącej lokalizacji. Zwykle to żądanie powinno zwracać błąd statusu 404 (Nie znaleziono). Jednak w przypadku wersji 11.0.7 IE11, często zwraca 0 Status błędu i pokazuje błąd sieci 0x2ee4 wewnątrz konsoli F12 "

Zamieściłem ten sam problem do Microsoft Connect tutaj: https://connect.microsoft.com/IE/feedback/details/877525/ie11-returns-status-0-during-ajax-post-operation-from-an-iframe-xmlhttprequest-network-error-0x2ee4#tabs

myślę, że to jest Błąd IE11, ale nie jestem w 100% pewny i nie ma jeszcze potwierdzenia od zespołu IE. Proszę pomóż mi potwierdzić, czy jest to błąd IE, czy też jest jakiś problem w moim kodzie JavaScript.

AKTUALIZACJA :

Microsoft poinformował, że może odtworzyć problem i zbada to.

+0

Problem został przeniesiony do https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/245775/, ale oczywiście nie został naprawiony. –

Odpowiedz

5

Ten błąd jest spowodowany nieprawidłowym certyfikatem SSL. Dla rozwiązania tego błędu na stronie: [Link]

$.get(window.api + 'Values', null, null).done(function() {//solution for IE shit 
    $.ajax({ 
     type: 'POST', 
     url: https://api.yourdomain.com, 
     data: yourData, 
     success: function (data) { 
      //do something 
     }, 
    }); 
}); 
4

miałem ten sam problem, gdy próbuje zrobić wywołanie POST do naszego serwisu HTTPS WCF (CORS) i wygląda na to, że to ze względu na certyfikat SSL. Musiałem odtworzyć moje z następującą komendą MakeCert:

makecert.exe -r -pe -n "CN = *. YourDomain.com" -eku 1.3.6.1.5.5.7.3.1 -ss my -sr localMachine -sky exchange -sp "Dostawca kryptograficzny Microsoft RSA SChannel" -a sha256 -sy 12 "C: \ EncryptionCert.cer"

zainstalował utworzony certyfikat Cert dla klienta i serwera zaufany certyfikat główny Auth.

Po wybraniu tej cert na moim miejscu wiązania, udało mi się z powodzeniem nazwać moją HTTPS usługi WCF w IE 11.

-3

Mam ten sam problem zbyt. na początku korzystam z żądania pobierania przed wysłaniem. rozwiązuje problem. ale kiedy w głębi, uważam, że to w opcji Internetu - "Opcje zaawansowane

  1. anulować sprawdzanie daty ważności certyfikatu serwera *
  2. anulować sprawdzanie ważności certyfikatu wydawcy *
  3. Kliknij OK
  4. restartu Twoja przeglądarka

i rozwiązany

enter image description here

Powiązane problemy