4 Stimmen

Zugriff verweigert Fehler in IE beim Hochladen von Dateien

Ich arbeite derzeit an einer neuen Website unter der .NET MVC-Plattform und versuche, einen asynchronen Benutzer-Upload von Bildern über ein iframe zu implementieren. Obwohl ich meine Aufgabe fast abgeschlossen habe und es in jedem anderen Browser voll funktionsfähig ist, scheitert es in IE 9 mit folgendem Fehler: Microsoft JScript-Laufzeitfehler: Der Zugriff wurde verweigert. Es sieht nach einem Sicherheitsproblem aus. Erlauben Sie mir, mein Problem mit den folgenden Code-Schnipseln mit Kommentaren zu beschreiben: 1. Ich habe ein HTML-Formular mit einer Eingabedatei, dessen Sichtbarkeit ausgeblendet ist. Innerhalb des Formulars befindet sich ein Eingabeelement mit type="file" und einer Schaltfläche zum Absenden (auch ausgeblendet).

  1. Das HTML-Formular versucht, die Datei über JavaScript an ein iframe zu senden. Sowohl das Formular als auch das iframe befinden sich in meinem lokalen Projekt (ASP.NET MVC) unter der gleichen Domain (ich führe dies unter localhost aus).

  2. Ich verwende ein onChange-Ereignis auf dem Eingabeelement, um zu erfassen, dass der Benutzer etwas ausgewählt hat, und um das Absenden des Formulars mit einem Ajax-Aufruf auszulösen. Wenn ich also per JavaScript aufrufe: $("#formID").submit() erhalte ich einen Zugriffsverweigerungsfehler.

Jede Hilfe wäre willkommen

2voto

Yuseferi Punkte 6592

Ich habe diesen IE-Bug schon vorher gesehen, schließlich habe ich meine Methode geändert. Das Auslösen des Änderungsereignisses des Eingabeelements programmatisch wird von IE als Sicherheitsrisiko betrachtet : ( (so dumm IE)

Standardmäßig erlaubt IE nicht, dass Sie das Änderungsereignis des Datei-Elements auslösen. Wenn Sie diese Funktion nutzen möchten, können Sie ajaxuploader oder fileuploader verwenden

var uploader = new qq.FileUploader({
// geben Sie das DOM-Element an (z.B. $(selector)[0] für jQuery-Benutzer)
element: document.getElementById('file-uploader'),
// Pfad zum serverseitigen Upload-Skript
action: '/server/upload'
});

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X