So verwende ich jquery Datei-Upload in einer Rails 3 App, und alles funktioniert wunderbar, gut, außer in IE 9. Nur in IE9, wenn ich versuche, eine Datei hochzuladen, bekomme ich weiterhin den Fehler "cant verify csrf token" in meiner Konsole. Ich habe Firebug lite installiert, um es zu inspizieren, und das korrekte csrf-Token ist korrekt und an der richtigen Stelle im Dokument (und ja, ich habe mein <% = csrf_meta_tags%> -Tag in der Kopfzeile der Layoutdatei). Nicht sicher, warum es das nur in IE 9 tut, hat das jemand schon mal gesehen?CSRF-Token kann nicht für einen jQuery-Dateiupload überprüft werden, nur IE 9, Rails 3 App
7
A
Antwort
20
Ich hatte das gleiche Problem und der Kommentar oben aus dem OP hat mir geholfen, die Antwort zu finden. Hier ist, was für mich gearbeitet:
$('#fileupload').fileupload({
... other options
formData: [
{ name: 'authenticity_token', value: $('meta[name="csrf-token"]').attr('content') }
]
});
Beachten Sie, dass die Layoutdatei (application.html.erb in Rails 3.2) sollte die folgenden:
<%= csrf_meta_tags %>
+0
Danke Santosh, Ihre Lösung funktioniert perfekt. – datnt
Verwandte Themen
- 1. Beispiel-App für Rails 3?
- 2. bedingte Kommentare IE 9
- 3. IE 9 nicht unterstützt $ locationProvider.html5Mode
- 4. Archivstatus für Postfach kann nicht überprüft werden
- 5. jQuery's $ (form) .submit() nicht nur für IE (MVC3 app)
- 6. Rails 3 validates_format_of funktioniert nicht für einen einfachen Regex
- 7. Wo kann die Berechtigung für einen Befehl überprüft werden?
- 8. Nur 1 Kontrollkästchen kann überprüft werden? PHP
- 9. IE 9 Löscht Formularfelder
- 10. Fallback für FormData in IE 8/9
- 11. Kann Quicktime nicht zum Spielen in IE 9
- 12. Rails 3 Entwurf für einen has_many: durch
- 13. Volltextsuche für Rails 3
- 14. Verschieben einer Rails 3 App
- 15. Meteor.js Anwendung unterstützt IE 9 nicht
- 16. Shim für FileReader() in IE 9
- 17. Hintergrundbild wird nicht in IE 9 zentrieren
- 18. Kann Ruby on Rails App nicht ausgeführt werden?
- 19. X-UA-kompatibel: IE = 9 vs IE = EmulateIE9, andere Browser
- 20. cache_money für Rails 3
- 21. CSS 3 Text Schatten in IE
- 22. kann nicht den Verein finden, Rails 3
- 23. IE 9 sprengt mein Design
- 24. Meine Rails 4.2.6 App verwendet zwei Datenbanken. Kann ich nur einen für Testzwecke verwenden?
- 25. Rails 2.x App kann nicht ausgeführt werden
- 26. Wie kann ich eine Funktion für mod (3) (9) schreiben?
- 27. Kann überprüft werden, ob ein Dateistrom in Rails geöffnet ist?
- 28. Kann das Laden von action_controller mit Rails 3 vermieden werden?
- 29. Wie kann ich csrftoken in Sicht bekommen?
- 30. Bash_Completion für Rails 3
herausgefunden, dass das Problem mit IE ist verwandt mit Iframe-Transport-Uploads Ich habe versucht, die Option "forceIframeTransport" auf "true" zu setzen, und dann wurde das obige Problem in Firefox und anderen Nicht-IE-Browsern repliziert. Ich bin mir immer noch nicht sicher, wie ich es beheben soll. In der Datei $ .ajaxSetup in der Datei jquery.iframe-transport.js habe ich versucht, die json-Antwort zu alarmieren, aber es hat Fehler geworfen und mich nicht losgelassen. Also habe ich gerade versucht, "$ (iframe [0] .body) .text()" zu alarmieren (was versucht wird, in json zu parsen, und ich habe eine wirklich seltsame Antwort bekommen. Vielleicht ist es ein Problem mit ungültigem json, nicht das csrf token? – ggrillone
Endlich bekommen es !!! Das Problem wurde mit IE mit Iframe-Transport-Uploads im Gegensatz zu XHR-Datei-Uploads (die Firefox, Chrome und Safari alle verwenden) verwandt. Wenn ein Browser iframe Transport Uploads verwendet, macht das Plugin ein Aufruf an eine separate Methode, die einen IFrame ein neues Formular im DOM erzeugt.Dieses neue Formular enthielt das csrf-Authentizitätstoken nicht, also musste ich den Wert aus dem anderen Formular übernehmen und vorher in das neue Formular einfügen – ggrillone
Bitte fügen Sie Ihre eigene Antwort hinzu und markieren Sie diese als akzeptiert – zykadelic