发布于 2016-11-03 06:25:33 | 126 次阅读 | 评论: 0 | 来源: 网友投递

这里有新鲜出炉的jQuery示例,程序狗速度看过来!

jQuery javascript框架

jQuery是一个兼容多浏览器的javascript框架,核心理念是write less,do more(写得更少,做得更多)。jQuery在2006年1月由美国人John Resig在纽约的barcamp发布,吸引了来自世界各地的众多JavaScript高手加入,由Dave Methvin率领团队进行开发。


这篇文章主要介绍了firefox浏览器用jquery.uploadify插件上传时报HTTP 302错误,分析了下,原来是利用flash进行post上传时没有包含原来的session信息,而是重新创建了一个session,知道原因了,我们来看看如何解决吧。

解决了uploadify插件在chrom频繁崩溃的问题,又遇到了新问题,ff浏览器下报HTTP 302错误,

ff浏览器下 uploadify 利用flash进行post上传时没有包含原来的session信息,而是重新创建了一个session,新的session无法通过登录验证,因此被重定向到了登录页面。

解决的方法无非就是将原session一起post到服务器端,然后服务器端登录验证之前将需要验证的session改为post过来的那个。。。(语言组织能力太差—,—)。

jquery.uploadify初始化时添加:



'formData' : { '<?php echo session_name();?>' : '<?php echo session_id();?>' },

服务器端由于项目使用的是zend框架,全部控制器都继承Seed_Controller_Action4Admin,修改基类怕引起其他问题,因此没有改基类,只改了应用控制器的init()方法



    public function init() {

        $session_name = session_name();

        if (!isset($_POST[$session_name])) {

 

        } else {

            session_id($_POST[$session_name]);

            //uploadify官网有这一行,但我加入这行后报session已启动错误

            //去掉之后正常

            //session_start();

        }

    }

这里发现一个问题:所有上传图片的action应该放到一个控制器中的,开发的时候偷懒了,将上传图片的action跟其他呈现页面的action放在了一起,init方法被覆盖掉了,因此其他几个action在访问的时候不进行登录验证了。。。

虽然HTTP 302问题解决了,唉。。。还是不合理啊。

最终还是没有完美解决此问题,小伙伴们如有更好的方法,请告知一下,本文持续更新。



最新网友评论  共有(0)条评论 发布评论 返回顶部

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务