项目中有使用到需要上传图片的地方, 项目本身之前是由别的同事开发的, 上传使用了uploadify来上传图片, 我们这次准备重构, 因为时间较紧, 所以也就沿用的之间的上传方法, 第一次使用uploadify, 觉得用的人还挺多, 不会有什么问题, 但是问题接踵而来。

自动发起的http请求.

因为没有影响功能, 一开始没有特别关注, 后来看控制台, 发现老是会多发出去一个请求, URL是当前域名, 因为URL有问题, 所以老是404, 查遍了所有代码都没有找到发送这个请求的地方, 后来把目光锁定到uploadify上面去, 注释了uploadify, 就发现没有这个请求了, 搜了一下, 遇到这个问题的还挺多, 网上随便找个解决办法就行了, 具体就是当你没有设置image_url的时候, 也会发送一个请求去拿这张图片, 下面有个大坑。

flash版本不会带上二级域名的cookie.

说先说下业务场景, 我们使用oauth的方式登录, 域名是: a.test.com, 登录后, 登录系统会将cookie写入到test.com域名下去, 子系统访问的时候拿到test.com下的cookie, 到登录系统中获取用户信息, 完成用户认证流程, 一个很常规的登录流程.

那么问题来了, 我们子系统的域名是a.test.com, 上传功能我们并不想开放给所有用户使用, 会有一些acl鉴权, 所以需要检测登陆态, 在chromeie下一切正常, 当使用safarifirefox的时候, 后端会提示无法获取用户信息的错, 打印了一下后端拿到的headers, 发现只有a.test.com域名下的cookie, test.com域名下的cookie全都没有获取到, 导致拿不到用户信息. 到这里就很清晰了, 一开始我以为是flash的问题, 对flash也不是很熟, 但是想想flash应该不会这么坑, 就下载了一下编译器自己写了一个测试了一下, 果然在所有浏览器下都是正常的, 那么就只能确定是uploadify的问题了, 找了个反编译工具看了下uploadify的代码, 有点多, 反编译后也不大好看, 没有找到具体原因.

最后的解决办法是, 先将上传的鉴权去掉了, 赶项目时间点, 回头马上迁移到html5去.

id2