200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 解决jQuery上传插件Uploadify出现Http Error 302错误办法【jquery】

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

时间:2019-12-18 05:14:35

相关推荐

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

web前端|js教程

jQuery,Uploadify,302错误

web前端-js教程

之前介绍过jquery uploadify上传插件的使用方法,我在使用中遇到过Http Error 302错误问题,应该会有很多人在使用中遇到过,在此记录下来:

首先http 302是请求被重定向的意思,这就很容易理解了,如果你的uploadify处理上传脚本有session验证,就会出现此错误,因为flash在执行post请求的时候没有包含cookie信息,而服务器的session会根据客户端的cookie来得到SESSIONID。没有提交cookie自然就不能获取到session,然后uploadify就返回了302(请求被重定向)的错误。

解决办法:

IC 设计 源码,vscode 中文插件下载,ubuntu fstab,tomcat 项目名配置,gorm sqlite,沈阳制作网页设计,万网主机 数据库,云桌面连接不上服务器吗,jq 排序置顶插件,大型网站项目前端用什么框架,爬虫写作,php调用类,seo自动推广工具,springboot文字图片,form标签的action属性,日文网站源码,html网页小游戏源码下载,帝国cms 地方门户模板,织梦后台,html搜索页面模板,管理系统,b2e应用程序lzw

把session_id的值传到服务端:

网页qq登入源码,下载ubuntu安装类型,设置项目为tomcat首页,开源电影爬虫,php编写抽象父类,seo上词皆选乐云seolzw

$(document).ready(function() { $(#file_upload).uploadify({uploader : uploadify/uploadify.swf,script : uploadify.php, folder : uploads/file,formData: { session: \},onComplete : function(event, ID, fileObj, response, data) {alert(response);} }); });

然后在服务器端session验证之前:

收费资源下载站源码,源码安装vscode,Ubuntu配置自定义网桥,Tomcat封装请求,sqlite视图优缺点,jq 虚拟键盘插件,用友前端用什么框架,网络爬虫爬取航空,php微信支付 扫码,神马seo,js开源项目网站,列表网页,单链表 模板,驱动程序 内存lzw

if (isset($_POST[session])){ session_id($_POST[session]); session_start();//注意此函数要在session_id之后 }

当然,你也可以直接在url中将session id传过去,这样Http Error 302错误就可以得到解决。

问题扩展:MVC使用uploadify3.1 IE下正常firefox、chrome也出现HTTPERROR 302错误,有什么解决办法?

jquery uploadify在ie下可以正常上传,在实现异步上传的时候,每一个文件在上传时都会提交给服务器一个请求。每个请求都需要安全验证,session 和cookie的校验。是的,就是这样。由于jquery uploadify是借助flash来实现上传的,每一次向后台发送数据流请求时,ie会自动把本地cookie存储捆绑在一起发送给服务器。但 firefox、chrome不会这样做,他们会认为这样不安全。

首先需要对global.asxa添加如下内容

protected void Application_BeginRequest(object sender, EventArgs e) {/* we guess at this point session is not already retrieved by application so we recreate cookie with the session id... */try{ string session_param_name = "ASPSESSID"; string session_cookie_name = "_SessionId"; if (HttpContext.Current.Request.Form[session_param_name] != null) {UpdateCookie(session_cookie_name, HttpContext.Current.Request.Form[session_param_name]); } else if (HttpContext.Current.Request.QueryString[session_param_name] != null) {UpdateCookie(session_cookie_name, HttpContext.Current.Request.QueryString[session_param_name]); }}catch{}try{ string auth_param_name = "AUTHID"; string auth_cookie_name = FormsAuthentication.FormsCookieName; if (HttpContext.Current.Request.Form[auth_param_name] != null) {UpdateCookie(auth_cookie_name, HttpContext.Current.Request.Form[auth_param_name]); } else if (HttpContext.Current.Request.QueryString[auth_param_name] != null) {UpdateCookie(auth_cookie_name, HttpContext.Current.Request.QueryString[auth_param_name]); }}catch{} } private void UpdateCookie(string cookie_name, string cookie_value) {HttpCookie cookie = HttpContext.Current.Request.Cookies.Get(cookie_name);if (null == cookie){ cookie = new HttpCookie(cookie_name);}cookie.Value = cookie_value;HttpContext.Current.Request.Cookies.Set(cookie); }

初始化页面上传插件代码如下

var auth = "@(Request.Cookies[FormsAuthentication.FormsCookieName]==null ? string.Empty : Request.Cookies[FormsAuthentication.FormsCookieName].Value)"; var ASPSESSID = "@Session.SessionID"; $(function () {$(#upload).uploadify({ formData: { folder: /Upload, ASPSESSID: ASPSESSID, AUTHID: auth }, uttonText: 浏览, uttonClass: rowser, fileSizeLimit : 100KB, fileTypeExts: *.xls;*.xlsx, emoveCompleted: false, swf: @Url.Content("~/Scripts/Uploadify/uploadify.swf"), uploader: /Upload, onUploadSuccess: function (file, data, response) {}}); });

一个问题的研究可以是发散性的是多方面,我们要学会举一反三,这样才能灵活的学习专业知识,掌握专业技能,希望对大家的学习有所帮助。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。