在项目中用到uploadify的程序员应该遇到这个http 302的错误,其实这个原因的根本原因在于你在执行后台代码之前用session进行登录验证。所以最简单的解决这个问题的方法是在上传文件的代码块中把session登录验证的代码块去掉。当然这个方法不可取,下面先分析这个问题出现的原因及另一种解决方式

下面先给导致问题出现的代码

uploader : "/acr/user/rqs/iconupload",//此为uploadify插件向后台发送请求的url

        @Login//登录验证@RequestMapping(value = "/iconupload", method = RequestMethod.POST)public @ResponseBodyString iconUpload(@RequestParam MultipartFile file, Model model,HttpSession session,
HttpServletRequest request) throws Exception {String root = "/srv/icons/icon";return FileUtil.upload(file, root,request);}

这段代码会报302错误。302状态码 表示请求发生了暂时性转移,且302 重定向是临时性转移。如果去掉@login不进行登录则不会出现此问题。所以不难理解问题的关键在于登录验证的逻辑。登录验证的一般逻辑是获取session保存的用户名name, 如果name==null的话就重定向到登录界面,所以这个302的问题就不难发现了:关键在于这个session中没有保存该name。在这里你可能会想怎么可能?我已经登录了,且把name保存在session中,怎么可能会在登录验证的时候name == null???所以只有一种情况,此session非彼session!!!!说明uploadify在向后台发送请求的时候重新生成了一个session。

我们知道在第一次访问服务器的时候,服务器开启一个session(此处假设为S1)发给浏览器一个jsessionid(此处假设jsessionid=1)。在以后的发起的每一个请求中浏览器会把这个jsessionid重新发给服务器来定位S1,因为session.getId() == jsessionid==1.并从S1中获取name来验证用户是否登录。

当用uploadify的时候,通过iconUpload方法参数中的session获取此session的id,即:session.getId().经过测试发现此时的session.getId() != 1,由此可见这个session已经不是原来的那个session了。

既然是通过jsessionid来定位当前用户的session,那么解决这个问题的方法很自然的就出现了,即在url后面加上“;jsessionid=”+1(或S1.getId()),手工指定jsessionid == 1(S1.getId())来定位正确的session(S1)就可以了。所以改正后的代码如下

uploader: "/acr/user/rqs/iconupload;jsessionid="+"<%=request.getSession().getId()%>",

注意此处iconupload后面是“;"而不是“?".(貌似有点乱,不当之处还请指正,共同学习)

uploadify http 302问题说明相关推荐

  1. uploadify HTTP 302 错误如何解决?

    TP框架uploadify HTTP 302 错误如何解决? 在核心类文件夹里下的Conf/convention.php中 将 VAR_SESSION_ID打开(建议在模块的conf文件中添加配置,如 ...

  2. MVC中使用jquery uploadify上传图片报302错误

    使用jquery uploadify上传图片报302错误研究了半天,发现我上传的action中有根据session判断用户是否登录,如果没有登录就跳到登陆页,所以就出现了302跳转错误.原来更新了fl ...

  3. php上传图片302错误,解决ThinkPHP下使用上传插件Uploadify浏览器firefox报302错误的方法...

    最近用ThinkPHP开发一个项目,集成了批量上传文件插件Uploadify,在谷歌Chrome和IE下都能正常上传,只有火狐下提示这个错误,网上找了很多解决办法,基本都说flash在firefox下 ...

  4. uploadify 初始化的时候会请求当前页面地址

    2019独角兽企业重金招聘Python工程师标准>>> uploadify 初始化的时候会请求当前页面地址,导致上传时地址被重定向报302错误. 解决方法是: this.settin ...

  5. uploadify上传文件出现http302错误

    这两天在做注册页面的时候遇到的问题,uploadify在上传图片时,提示http302错误, 百度了一圈都说是sessionid的问题,传一个sessionid过去就可以了,但是发现sessionid ...

  6. Angularjs集成第三方js插件之Uploadify

    有时候需要用一些第三方插件,比如datepicker,slider,或者tree等.以前的做法是直接通过jquery取得某个元素,然后调用某个方法即可.但在angularjs中,不能直接这么写,必须写 ...

  7. linux调试C++错误: 程序中有游离的‘\240’‘\302’

    今天在网上找到一个小程序,一编译出现一大堆的 错误: 程序中有游离的 ...... 开始觉得可能我从网页上直接复制的代码中有别的字符.于是把中文的全角空格全部替换了. 这次好多了,少了一些,不过还有很 ...

  8. ASP.NET MVC上传文件----uploadify的使用

    课程设计需要实现上传文件模块,本来ASP.NET是有内置的控件,但是ASP.NET MVC没有,所以就有两种方法:自定义和采用第三方插件.由于时间的关系,故采用第三方插件:uploadify. upl ...

  9. java使用uploadify上传文件

    一.简介 Uploadify是JQuery的一个上传插件,实现的效果非常不错,带进度显示:可以上传多个文件: 详细的使用方法网上有很多,建议到官网参考,这里仅仅展示其使用的效果: 官网:www.upl ...

  10. jquery文件上传控件 Uploadify

    基于jquery的文件上传控件,支持ajax无刷新上传,多个文件同时上传,上传进行进度显示,删除已上传文件. 要求使用jquery1.4或以上版本,flash player 9.0.24以上. 有两个 ...

最新文章

  1. [转]在cocos2d-x中让一个项目适配iphone、iphone retina、ipad、ipad retina四种分辨率
  2. charts混合使用 elementui和e_vue模块化(echart+element ui)
  3. vector 用法小例子
  4. 微服务学习--Linux
  5. boost::mp11::mp_apply_q相关用法的测试程序
  6. catkin_make与gtest出现冲突的问题与解决
  7. 海量数据,海明距离高效检索(smlar)
  8. python预定义_【Python】python类中方法的预定义
  9. 【报告分享】中国人工智能产业发展指数.pdf
  10. JAVA实现图的邻接表以及DFS
  11. delphi 多个checkbox只能勾选一个_CAD加选无效?不可连续选择多个对象?按下这个键就正常了...
  12. Arcgis自带数据地址
  13. 怎么新建web程序_前端程序员发展潜力最好,那该怎么学好web前端开发?
  14. CCF推荐+SCI二区期刊征收AI方向特刊|确定3个月出录用结果
  15. redis单点故障问题
  16. java永久区_Java方法区和永久代
  17. 一起来读书361- 应用密码学:第十一章 数学背景
  18. linux系统路由器地址查询,如何在任何平台上查找路由器的IP地址
  19. java ip调天气预报接口_java调天气预报接口
  20. IDC FutureScape:全球智慧城市2019年预测 - 中国启示

热门文章

  1. python isodd()判断奇偶_EXCEL VBA:Iseven Isodd 判断奇偶
  2. JavaWeb:JSON对象和Java对象的相互转换
  3. layUI:垂直导航栏点击某个导航时关闭其他已开启导航
  4. Javascript:js借助jQuery和fileSave将表格存储到world
  5. Git pull(拉取),push(上传)命令整理
  6. 多GPU环境运行实验的一点经验
  7. 深度学习超参数简单理解:learning rate,weight decay和momentum
  8. 面向集团客户云计算运营平台的市场情况及产品发展——之云计算运营平台方案(二)...
  9. 使用Connector / Python查询MySQL数据
  10. mac 安装docker