2017-01-06 75 views
-1

jQuery使用的encodeURI(),所以通過AJAX發送的數據是這樣的:AJAX FORMDATA()VS是encodeURI()

key1=true & key2=34 & ... 

要通過AJAX發送圖像,我使用了FormData(),所以從AJAX數據(沒有圖像)是這樣的:

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

34 

現在我有兩個純AJ功能的AJAX。主要使用encodeURI(),另一個僅用於上傳圖像,使用new FormData()

因爲我想只有一個AJAX功能,我的問題是 - 這是否合理,所以只切換到FormData()? jQuery使用encodeURI()的原因是什麼?

+0

......當然...... –

+0

這些是使用ajax的兩種不同的方法。將數據發佈到服務器時使用FormData,其中數據將放置在請求的主體中。從服務器獲取數據時使用'encodeURI',其中參數放置在URL中。不同的功能,不同的功能。 –

+0

...也可以使用'encodeURI()'發送請求。只需指定標題'Content-Type'='application/x-www-form-urlencoded – Krupp

回答

0

jQuery的$.ajax接受一個對象作爲datastring,所以你可以通過對圖像的URL,或者也可以使用類似:

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

那麼你就可以獲取和重建在另一側的圖像。