因為要使用表單實現跨域上傳檔案,但是發現在6.7居然不行,需要自己手動去建立formdata
物件來提交,這比較奇怪。經過分析源**,終於找到了這個bug,主要**如下:
...
if(ext.feature.has.
xhr2
&& request.xhr2));
}else})
;delete request.params;}}
return ext.ajax.
request
(request)
;
以上**是ext.form.panel
的beforeajaxsubmit
**片段,主要錯誤是在建立formdata
的時候把值賦值給了data
屬性,而不是rawdata
屬性,這導致了在ext.ajax
的setoptions
方法中把表單值都忽略了,從而什麼也沒提交。
通過重寫ext.form.panel
的beforeajaxsubmit
方法,就可使用以下**輕鬆的跨域上傳檔案了:
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 ...