2013-05-01 18 views
27

SCRIPT7002: XMLHttpRequest: Network Error 0x2ef3, Could not complete the operation due to error 00002ef3IE10/IE11 Abort Messaggio richiesta Ajax dopo l'eliminazione di cache con l'errore "0x2ef3 Errore di rete"

Nessuna soluzione valida al momento.

Update: Noticed on IE11 also.

Dopo più e più indagini, vengo con questo risultato:

  1. Il problema è specifico per la mia domanda, non accade su Facebook.
  2. Il problema non ha nulla a che fare con il numero massimo di richieste per host (ho fatto una pagina di esempio che inonda il server, IE10 è in grado di gestire fino a 8-10 req contemporaneamente, all'interno della mia applicazione ho provato anche a fare ajax richiede in serie, ha fallito anche).
  3. Il problema è specifico delle richieste POST.
  4. Il problema non è specifico della libreria JS utilizzata (ho provato XMLHttpRequest diretto dalla console che non è riuscito).
  5. L'errore si è verificato dopo xhr.send(), xhr.readyState = 4 e xhr.onreadystatechange attivato.
  6. L'errore non è correlato a qualsiasi tipo di contenuto, richieste appropriate o configurazione del server. È solo il client, che richiede che la pagina fittizia fallisca, con un XHR minimo, solo xhr.open e xhr.send.
  7. Si è verificato principalmente dopo aver svuotato la cache del browser.
  8. Fare la richiesta GET prima che il POST non risolva questo problema.

Le mie domande sono:

  1. Come cache del browser possono influenzare richieste Ajax POST?
  2. Qualche organismo ha contatti con gli sviluppatori di IE per dirci a cosa è associato questo errore "Errore di rete 0x2ef3"?

Per ora la soluzione temporanea che sto facendo è semplicemente ripetere per un massimo di 3 volte se il codice di stato HTTP era pari a zero. Ma è molto brutto perché anche le richieste di caricamento a volte falliscono, e diventa lento per quelle richieste con tentativi, a volte occorrono 100ms in più.

Procedura per riprodurre:

  1. Assicurarsi violinista o un proxy è disattivato.
  2. http://ie10.laiths.name/#!login
  3. Aprire la console IE10, eliminare la cache del browser.
  4. Prova questa login valida: [email protected]/random
  5. Dopo 3-4 volte (clear-cache/invalid-login) si vedrà questo errore: SCRIPT7002: XMLHttpRequest: errore di rete 0x2ef3, Impossibile completare l' operazione dovuta all'errore 00002ef3.

mio IE Versione:

  • Win7 IE10 Versione: 10.0.9200.16618
  • Update Versione: 10.0.6 (KB2838727)

Per ora sto risolverlo da riprovare un massimo di 3 volte se il browser is IE10 & & Request is POST & & HTTP status code is 0.

Sarei grato se qualcuno mi può aiutare a rimuovere la mia brutta soluzione, perché con tale soluzione anche se la richiesta va al server e restituisce 0, riproverò anche io (stavo cercando di evitarlo misurando il tempo tra xhr.send e il suo callback ma non è affidabile), che dire se IE10 in comptMode, che dire se IE11 ha lo stesso problema, aggiungere a quella performance, prenderà sul mio computer ~ 170ms tra ogni tentativo.

+0

Non riesco a riprodurre questo in IE10. Ho provato qualcosa come 10 volte. –

+0

Sto aggiungendo il tentativo automatico, hai provato a svuotare la cache prima di ogni tentativo? stai usando la barra degli strumenti del programmatore rimuovi il pulsante cache? –

+0

Sì, ho cancellato la cache dopo ogni tentativo facendo clic su Cache (negli strumenti di sviluppo) -> Cancella cache del browser ... –

risposta

10

Questo può accadere a causa di un problema di certificato di sicurezza. Se si cancella la cache, si perdono parte (se non tutte) delle informazioni sul certificato.

Potete trovare ulteriori informazioni (e una soluzione) in http://www.jonnyreeves.co.uk/2013/making-xhr-request-to-https-domains-with-winjs/

In sostanza si dice che si deve fare un GET prima richiesta POST al fine di aggiornare le informazioni sul certificato.

+1

Grazie, in effetti, ho visto questo URL prima, ma non ero convinto dell'idea, comunque ci provò. Btw I am * not * using HTTPS –

+0

Che server stai usando? –

+1

Sto usando Apache, ma è puramente lato client, la richiesta non è andata oltre il filo, non è nemmeno uscita dal browser stesso. –

1

Ho avuto questo problema, una richiesta AJAX Post che ha restituito alcuni JSON fallirebbe, finalmente tornando interruzione, con il:

SCRIPT7002: XMLHttpRequest: Network Error 0x2ef3

errore nella console. Sugli altri browser (Chrome, Firefox, Safari) la stessa richiesta AJAX andava bene.

Ulteriori indagini hanno rivelato che la risposta mancava il codice di stato - in questo caso avrebbe dovuto essere 500 errori interni.

Questo è stato generato come parte di un'applicazione Web C# utilizzando lo stack di servizio che richiede un codice di errore da impostare in modo esplicito.

IE sembrava lasciare la connessione aperta, infine il livello di rete lo chiudeva e "interrompeva" la richiesta; nonostante abbia ricevuto il contenuto e altre intestazioni.

L'aggiornamento dell'applicazione Web per il corretto ritorno del codice di stato ha risolto il problema.

Forse c'è un problema con il modo in cui IE gestisce le intestazioni nei post.

Spero che questo aiuti qualcuno!

+0

hai una soluzione per questo? – Mousey

+1

Risolto il problema risolto dalla correzione dell'applicazione web. –