| 
 前段时间用到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            
   
------------------------------------------------------------------------------------------------------------------------------------------------  
   |