jquery.form.js,一个方便的小插件,可以很好的实现异步上传文件。
但在使用过程中,总会出现一些诡异的现象,比如提交成功但没触发回调函数。
此时你设置error回调,就会发现,报错了!!!然后去网上查,大多数都是错误的。
至于为啥报错,我就这点讲述我知道的几种可能。
1,返回的数据格式不对,如果加了dataType这个参数,js会检验返回的格式,如果返回格式错误,就会报错,所以用默认的就好。
解决方法:去掉dataType
2返回的json格式不对,也会报错
解决方法:检验json格式
3本机:跨域操作!大多都是因为这个原因出错的!(跨域的定义自己百度,这个不会有眼子的)
当你在本机做集群,或者部署多个相同项目,就很有可能在你不知道的情况下跨域操作(cookies出现的诡异现象也极有可能是跨域导致的,本帖子只讲插件上传问题)。
解决方法:以java为例:添加Response响应头 “Response.setHeader("Access-Control-Allow-Origin", "*");”或“ Response.setHeader("Access-Control-Allow-Origin", "http:ip:端口");”,
4服务器:跨域操作,负载均衡,部署集群,跨域操作时家常便饭
解决方法:和上面的一样
备注:打开浏览器,按f12.慢慢调试比上网查快多了