`

单点登录中uploadify上传http请求302重定向异常

阅读更多
   对于单点登录系统,当上传图片和文件时时出现 HTTP ERROR 302 错误, 这是服务端需要登录验证,而客户端uploadify 并没有把cookie中的 sessionId 发送给服务器 ,如果有拦截或过滤的话,请求就会被重置,这样就会出现302错误了。
对于这类问题处理;
  js代码:
  
function getSessionId(){
	var c_name = 'JSESSIONID';
	if(document.cookie.length>0){
		c_start=document.cookie.indexOf(c_name + "=")
		if(c_start!=-1){
			c_start=c_start + c_name.length+1
			c_end=document.cookie.indexOf(";",c_start)
			if(c_end==-1) c_end=document.cookie.length
			return unescape(document.cookie.substring(c_start,c_end));
		}
	}
}
    

jquery.uploadify.js文件中uploadify方法:
修改uploader的红色标记部分
'uploader' : '/incms/upload2/init.json;jsessionid='+getSessionId()
uploader实例代码如下:
$('#uploadXls').uploadify({
		'swf' : SWF,
		'buttonText' : '浏览',
		'width' : 50,
		'height' : 20,
		'fileSizeLimit' : '60MB',
		'multi' : true,
		'auto'  : false,
		'successTimeout':900,//服务器端返回的最大超时时间/秒
		'method' : 'POST',
		'queueSizeLimit' : 100,
		'fileTypeDesc' : 'Upload Files',
		'fileTypeExts' : '*.xls; *.xlsx',
		'formData'     : {'fileAmount':''},//'netType':'',
		'uploadLimit' :15,
		'uploader' : '/incms/upload2/init.json;jsessionid='+getSessionId(),
		'onDialogClose': function(queueData){
			fileAmount = queueData.filesQueued;
		},
		'onDialogOpen':function (){
			$('#uploadXls').uploadify('cancel','*');
		},
		'onUploadStart' : function(file) {
			$.messager.progress({title:'Please waiting',msg:'正在导入.....',text:''});
		},
		'onSelect' : function(file) {
			if(!$("#uploadIsMac").val()){
				$('#uploadXls').uploadify('cancel','*');
				$('#upload_detail_dialog').dialog('close');
				$.messager.alert(titleInfo,"请选择设备");
				return;
			}
		},
		'onCancel': function(file) {
			fileAmount=fileAmount-1;
		},
		'onUploadSuccess' : function(file, data, response) {
			//alert("PP:"+response);
			if(response==false){
				$.messager.progress('close');
				$.messager.alert(titleInfo, '数据太大,请查看是否全部导入成功!');
				$('#uploadXls').uploadify('cancel','*');
				$('#upload_detail_table').datagrid('load');
				$('#upload_detail_dialog').dialog('close');
			}else{
				var json = $.parseJSON(data);
				var jsonData=json.data.msg;//返回信息
				if(jsonData !=null && jsonData !=''){
					if (json.data.code == 3) {
						//选择的对应厂商没有数据
						$.messager.progress('close');
						$('#uploadXls').uploadify('cancel','*');
						$('#upload_detail_table').datagrid('load');
						$('#upload_detail_dialog').dialog('close');
						$.messager.alert(titleInfo, json.data.msg);
					}else if(json.data.code==2){
						//部分导入成功
						$.messager.progress('close');
						$.messager.alert(titleInfo,json.data.offerMsg);
						
						$('#uploadXls').uploadify('cancel','*');
						$('#upload_detail_table').datagrid('load');
						$('#upload_detail_dialog').dialog('close');
					}
				}else{
					 //不显示进度的100%   
					$.messager.progress({title:'Please waiting',msg:'正在导入.....',text:''}); 
				}
			}
		},
		'onAllComplete' : function(event,data) {
		},
		'onUploadError' : function(file, errorCode, errorMsg, errorString) {
        }
	});
分享到:
评论

相关推荐

    Uploadify上传图片实列

    在本文中,我们将深入探讨Uploadify的工作原理、配置选项以及如何在实际项目中实现图片上传功能。 1. **Uploadify概述** Uploadify是一个基于JavaScript和Flash的文件上传组件,它可以实现在不刷新页面的情况下...

    解决jQuery上传插件Uploadify出现Http Error 302错误的方法

    所以,服务器端的会话验证机制因为没有找到附带的会话ID cookie而认为请求无效,因此会将请求重定向到登录页面或其他操作,返回302状态码。 解决这个问题的方法之一是在上传的POST请求中附加会话ID。在Uploadify中...

    uploadify上传文件HTTP ERROR

    "uploadify上传文件HTTP ERROR"这个标题指向了一个特定的问题,即用户在尝试使用Uploadify插件进行文件上传时遇到了HTTP错误。Uploadify是一款流行的JavaScript插件,它允许用户通过异步方式上传文件到服务器,提供...

    MVC4下对话框中使用Uploadify上传多个文件

    在本文中,我们将深入探讨如何在ASP.NET MVC4框架下,利用JQuery Dialog插件创建一个弹出对话框,并在其中集成Uploadify组件实现多文件上传功能。这将涉及前端JavaScript库、后端C#处理逻辑以及数据库交互,旨在提供...

    uploadify多文件上传例子代码

    当uploadify上传文件时,会发送多个HTTP请求,每个请求对应一个文件。在doPost方法中,你可以通过Part接口来接收并处理这些文件。例如: ```java protected void doPost(HttpServletRequest request, ...

    thinkphp+uploadify上传实例

    这个“thinkphp+uploadify上传实例”旨在演示如何结合两者实现高效且用户友好的文件上传功能。 首先,我们需要了解`ThinkPHP`的基础。它是一个轻量级的PHP框架,遵循敏捷开发的原则,具有良好的文档支持和丰富的...

    uploadify 图片上传代码

    - **社交媒体**:在个人资料页面中,用户可以使用Uploadify上传头像或其他个人照片。 - **电商网站**:商家可以上传商品图片,客户可以上传订单图片或退货凭证。 - **博客/论坛**:用户可以上传图片作为帖子的配...

    jQuery Uploadify 上传插件出现Http Error 302 错误的解决办法

    前段时间介绍过jquery uploadify上传插件的使用方法,我在使用中遇到过Http Error 302错误问题,应该会有很多人在使用中遇到过,在此记录下来: 首先http 302是请求被重定向的意思,这就很容易理解了,如果你的...

    uploadify上传并且得到文件名

    在“uploadify上传并且得到文件名”这个主题中,我们将深入探讨Uploadify如何工作以及如何获取上传文件的名称。 首先,Uploadify提供了一个友好的用户界面,用户可以方便地选择多个文件进行批量上传。它通过异步...

    uploadify多图上传实例

    在本文中,我们将深入探讨如何在ASP.NET环境中实现一个基于Uploadify的多图上传实例。 【描述】:“用ASP.NET实现uploadify多图上传插件的小实例” ASP.NET是Microsoft提供的一个强大的Web应用程序框架,支持多种...

    uploadify上传

    **标题:“uploadify上传”** **关键词:jsp, uploadify, 文件上传** **正文:** 在Web开发中,文件上传是一项常见的功能,特别是在用户需要提交图片、文档等数据时。`uploadify`是一款基于JavaScript和Flash的...

    uploadify文件异步上传

    在“uploadify 文件异步上传 实现qq邮箱异步上传 0积分”的场景下,我们可以理解为这个示例可能展示了如何将Uploadify集成到QQ邮箱中,以支持用户快速、便捷地上传附件。 1. **Uploadify的基本概念**: Uploadify ...

    uploadify批量上传实例

    Uploadify是一款广泛应用于Web开发中的JavaScript插件,主要用于实现文件的拖放上传和批量上传功能。这个实例展示了如何在项目中有效地集成Uploadify,以提供用户友好的文件上传体验。以下是对Uploadify批量上传实例...

    uploadify3.2文件上传demo

    上传过程中,Uploadify会发送一系列HTTP POST请求到服务器,携带文件数据。服务器端的代码接收到这些请求后,将文件保存到指定的目录,并可能返回一些确认信息给客户端。 6. 实战应用: 在myeclipse环境下,开发...

    fileupload+uploadify上传demo

    在"fileupload+uploadify上传demo"中,Uploadify作为前端交互层,负责用户界面的展示和文件选择,而FileUpload则作为后端服务,接收并处理Uploadify发送的文件。这种组合可以实现文件预览、上传进度反馈、错误处理等...

    uploadify 批量上传文件

    Uploadify是一款广泛应用于Web开发中的前端文件上传插件,它支持多文件选择、批量上传、进度条显示等功能,极大地优化了用户在网页上上传文件的体验。本文将深入探讨Uploadify的工作原理、主要特点以及如何在项目中...

    修复uploadify3.2.1初始化基于当前页面和uploadify.swf发送多次请求

    1. **多次调用初始化函数**:如果在代码中有多处初始化Uploadify的语句,每次调用都会创建一个新的上传实例,从而导致重复请求。 2. **事件绑定重复**:Uploadify 使用事件监听来触发上传行为,如果事件绑定代码执行...

    thinkphp uploadify图片批量上传

    在IT行业中,开发一款支持图片批量上传的功能是常见的需求,特别是在Web应用中。"thinkphp uploadify图片批量上传"是一个基于ThinkPHP框架和Uploadify插件实现的解决方案,旨在为用户提供方便快捷的图片上传体验。...

Global site tag (gtag.js) - Google Analytics