jquery上傳插件uploadify 報錯http error 302 解決方法之一


前段時間用到jquery上傳插件uploadify時,始終出現系統報出 http error 302 的錯誤。

網上大量搜集信息,基本上都是說session值丟失的問題,根據網友提供的解決方案進行修改,問題並沒有解決。

因此,不排除這是解決302錯誤的解決方法之一,但是我接下來提出另一解決方案,考慮到異步傳輸的問題,供大家參考(反正我是成功了)。

首先是uploadify初始化

$(function() {
           $('#projectfile').uploadify({
              'swf'      : '${ctxStatic}/scripts/jqext/uploadify/uploadify.swf',
              'uploader' : '${ctx}/utmmanager/utm/insert',  

                                             //session的方案,就是在此uploader的值中添加:JSESSIONID=${pageContext.session.id},

              'auto'  : true,               並且增加一行'formData' :{'JSESSIONID':"${pageContext.session.id}"},
              'buttonText' : '導入',
              'multi'    : false,
              'fileObjName' : 'file',
              'method'   :'post',
              'onUploadSuccess' : function(file,data,response) {
                 var json_data=eval("("+data+")");    
                 alert("<br>成功導入條目數:"+json_data.successLen+"<br>失敗導入條目數: //此處需要返回的是json數據,

                 "+json_data.errorLen+"<br>導入失敗條目:<br>"+json_data.errorData);     不是跳轉路徑。具體看下面分析。
              },
              'onUploadError' : function() {
                  alert("失敗");
               }        
          });
      });

其次是Controller方法:

  需要添加@ResponseBody

      @responsebody表示該方法的返回結果直接寫入HTTP response body中,一般在異步獲取數據時使用。

      在使用@RequestMapping后,返回值通常解析為跳轉路徑,加上@responsebody后返回結果不會被解析為跳轉路徑,

      而是直接寫入HTTP response body中。比如異步獲取json數據,加上@responsebody后,會直接返回json數據。

  作用:

      該注解用於將Controller的方法返回的對象,通過適當的HttpMessageConverter轉換為指定格式后,

      寫入到Response對象的body數據區。

  時機:

      返回的數據不是html標簽的頁面,而是其他某種格式的數據時(如json、xml等)使用;

 

 

 

 

Chocoo           

2016.4.18         

 

------------------------------------------------------------------------------------------------------------------------------------------------

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM