2017-01-06 4 views
-1

jQuery verwendet die encodeURI(), so dass die durch AJAX gesendeten Daten ist wie folgt:AJAX Formdata() vs encodeURI()

key1=true & key2=34 & ... 

ein Bild durch AJAX zu senden, verwende ich die FormData(), so dass die Daten von AJAX (ohne ein Bild) ist wie:

-----------------------------7e136023611f0 
Content-Disposition: form-data; name="key2" 

34 

Jetzt habe ich zwei pure-JS-Funktionen für AJAX. Der Hauptbildschirm verwendet , und der andere dient nur zum Hochladen von Bildern unter Verwendung der new FormData().

Da ich nur eine AJAX-Funktion haben möchte, ist meine Frage - wäre es vernünftig, also nur auf die FormData() wechseln? Was ist der Grund für jQuery, den encodeURI() zu verwenden?

+0

... natürlich .... –

+0

Das sind zwei verschiedene Methoden der Verwendung von Ajax. FormData wird verwendet, wenn Daten an den Server gesendet werden, wo die Daten im Hauptteil der Anforderung platziert werden. 'encodeURI' wird verwendet, wenn Daten vom Server abgerufen werden, wo die Parameter in der URL platziert werden. Unterschiedliche Funktionalität, verschiedene Funktionen. –

+0

... es ist auch möglich, eine Anfrage mit dem 'encodeURI()' zu senden. Geben Sie einfach den Header 'Content-Type' = 'application/x-www-form-urlencoded an – Krupp

Antwort

0

jQuery $.ajax akzeptiert ein Objekt als Datenstring, so dass Sie auf die URL des Bildes, oder auch verwenden, um etwas wie passieren könnte:

data = 'data:image/gif;base64,R0lGODlhAAEwAMQAAJ2M5Me98GRK1D...1rTIIAQA7'; 

So können Sie dann holen und rekonstruieren das Bild auf der anderen Seite.

Verwandte Themen