Ext JS 6 7不能跨域上傳檔案的bug

2021-09-17 21:50:39 字數 1238 閱讀 3133

因為要使用表單實現跨域上傳檔案,但是發現在6.7居然不行,需要自己手動去建立formdata物件來提交,這比較奇怪。經過分析源**,終於找到了這個bug,主要**如下:

...

if(ext.feature.has.

xhr2

&& request.xhr2));

}else})

;delete request.params;}}

return ext.ajax.

request

(request)

;

以上**是ext.form.panelbeforeajaxsubmit**片段,主要錯誤是在建立formdata的時候把值賦值給了data屬性,而不是rawdata屬性,這導致了在ext.ajaxsetoptions方法中把表單值都忽略了,從而什麼也沒提交。

通過重寫ext.form.panelbeforeajaxsubmit方法,就可使用以下**輕鬆的跨域上傳檔案了:

view.

submit(,

method:

'post'

, submitemptytext:

false

, url:

uri.

get(

cfg.organizationunit.id ===1?

'shareproduct'

:'product'

,'import'),

success: me.onsubmitsuccess,

failure: me.onsubmitfailure,

scope: me

});

**中,xhr2是必須的,從剛才的**也可以看到,只有當該值為true的時候,才會使用formdata物件來提交資料,而這是使用ajax來上傳檔案的常用方式。另外乙個要注意的地方就是要將content-type設定為null,以便自動生成正確的content-type,不然提交也不會成功。

上傳檔案跨域

公司 www.6v.com,伺服器www.up.6v.com 通過跨域從主站傳到伺服器 最後效果 共了三個外掛程式,乙個是ajaxfileupload,乙個是uploadify,還乙個是jcrop 第一步用uploadify,主要是因為要求有進度條,之前部落格中有介紹uploadify,在此不多說。...

iframe 跨域上傳檔案

首先是乙個正常的上傳頁面 upload.html id if name if src about blank frameborder 0 這裡有乙個關鍵點是form的target要指向iframe,同時把iframe隱藏起來,這樣上傳的處理結果就會顯示在該iframe裡。action裡的cb cal...

Spring檔案上傳和跨域檔案上傳

普通檔案上傳 2 建立servletfileupload和磁碟檔案項工廠 diskfileitemfactory factory new diskfileitemfactory servletfileupload fileupload new servletfileupload factory 3 ...