form上传文件以及跨域异步上传
生活随笔
收集整理的這篇文章主要介紹了
form上传文件以及跨域异步上传
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
要設(shè)置了enctype屬性才能上傳,需要使用上傳的jar包,這里使用的是cos-26Dec2008.jar,
?
?
?
關(guān)于跨域上傳文件:
跨域上傳文件總會報錯,即使服務(wù)器端設(shè)置了header('Access-Control-Allow-Origin:?*'),仍會報錯說缺少multipart屬性,發(fā)現(xiàn)用form提交就沒問題。原因是,
HTML5上傳的時候就是用的CORS規(guī)范,即:在發(fā)送真正的上傳請求之前會先發(fā)送一條OPTIONS請求給服務(wù)器,這時候需要服務(wù)器響應(yīng)允許跨域上傳的HTTP頭,然后中斷輸出。瀏覽器接到允許跨域上傳的HTTP頭后會再次發(fā)起真正的上傳文件請求(POST)。詳細分析參考http://www.cnblogs.com/woshimrf/p/js-cors.html
因此,上傳文件需要應(yīng)答的,第一次options請求需要返回允許跨域的信息,而我通常第一次就當(dāng)做文件接收了,所以接收不到。
做法:對請求進行攔截,如果是options請求直接返回
response.setHeader("Access-Control-Allow-Origin", "*"); response.setHeader("Access-Control-Allow-Methods", "POST, PUT, OPTIONS");如果是別的請求則通過。
1 String method = request.getMethod(); 2 if ("OPTIONS".equals(method)) { 3 return; 4 } 5 nextHandler.handle(target, request, response, isHandled); 本文轉(zhuǎn)自Ryan.Miao博客園博客,原文鏈接:http://www.cnblogs.com/woshimrf/p/file-cors.html,如需轉(zhuǎn)載請自行聯(lián)系原作者總結(jié)
以上是生活随笔為你收集整理的form上传文件以及跨域异步上传的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: VBS脚本常用经典代码收集
- 下一篇: cisco 6509交换配置