6

Ich habe einen eigenartigen Fehler mit IE11 und Ajax. Für fast alle Anfragen, die ich mit dem unten stehenden Code erstelle, ist alles in Ordnung, aber wenn ich versuche, sie in Verbindung mit einer copy + paste-Methode zu verwenden, wird der Fehler Zugriff verweigert zurückgegeben. Um es zusammenzufassenIE 11 Fehler - Zugriff verweigert - XMLHttpRequest

  • Dieser Code funktioniert in der Regel in den meisten Browsern für alle Funktionen, die ich geschrieben habe
  • In IE 11 + Windows-8.1, es funktioniert in den meisten Fällen, außer wenn eine bestimmte Kopieren und Einfügen-Funktion
  • läuft
  • Interessanterweise weise~~POS=HEADCOMP, wenn IE 11 verwenden, aber mit einem anderen Dokumentmodus wie 8, ich immer noch die gleichen Fehler, auch wenn es nativ in IE8 + Windows 7
  • Der Fehler funktioniert, ist ‚Zugriff verweigert‘

e die AJAX Code:

function ajaxRequest(requestName,responseFunction,parameters) { 
var xmlhttp; 
if (requestName.length==0) return; 
if (window.XMLHttpRequest) { 
    xmlhttp=new XMLHttpRequest(); 
} else { 
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
} 
xmlhttp.onreadystatechange=function() { 
    if (xmlhttp.readyState==4 && xmlhttp.status==200) { 
     if(xmlhttp.responseText == 'Error') alert('Error processing request. Please refresh the page and try again'); 
     else if(xmlhttp.responseText != '') eval(responseFunction+"('"+xmlhttp.responseText+"')"); 
    } 
} 
var now = new Date(); 
var url = "control/ajax.php?request="+requestName+"&parameters="+parameters+"&timestamp"+now; 
xmlhttp.open("GET",url,true); 
xmlhttp.send(); 
} 

Ein Beispiel eines Ausfalls hatten die folgenden Variablen eingestellt:

request: "save_marksheet_mark" responseFunction: "update_save_marksheet_mark" Parameter: [60962,1284,5]

Gibt es etwas falsch mit diesem Code? Gibt es einen Grund, warum IE11 unter bestimmten Umständen einen Fehler mit diesem Code auslösen würde?

+0

Siehe diesen Thread http://StackOverflow.com/Questions/22098259/access-denied-in-ie-10-and-11-when-ajax-target-is-localhost – Dnyanesh

+0

Dies ist keine Cross-Domain-Anfrage - var url = "control/ajax.php ... Es fordert eine Seite auf der gleichen Website wie der Benutzer bereits besucht – Ben

+0

*" noch, wenn ich versuche, in Verbindung mit einer Copy + Paste-Methode verwenden, gibt es einen Zugriff zurück wird verweigert Fehler "* Haben Sie versucht, die Kopie einfügen auf eigene, um zu sehen, ob das ist, wo der" Zugriff verweigert "Fehler stammt? Entfernen Sie unnötigen Code, wenn möglich. –

Antwort

6

Diese Frage scheint viele Ansichten zu bekommen, also habe ich dieses Problem gelöst, indem ich für den ursprünglichen AJAX-Aufruf setTimeout() verwendet habe. Z. B:

setTimeout(function() { 
     ajaxRequest('save_mark','save_mark_completed',[60962,1284,5]) 
    }, 1); 

Ich nehme an, es irgendeine Art von Fehler in IE ist. Nur 1 Millisekunde war alles was es brauchte!

+1

Das ist so lächerlich und ich bin Ihnen sehr dankbar für diese Erklärung, weil ich lange damit zu kämpfen gehabt hätte, bevor ich herausgefunden hätte, was in der Welt vor sich geht. – glenatron

+0

Wie behebt ein 1ms Timeout das Problem? Dies macht die Anfrage erfolgreich? – theUtherSide

+0

Ich kann Ihnen nicht sagen, warum es funktioniert, aber es tut definitiv! Ich denke, es ist nur ein Fehler! – Ben

Verwandte Themen