jqury.crossajax:利用 Flash 完美解决 AJAX 跨域请求(解决GBK编码问题)
受张宴大哥的AJAXCDR启发,制作jquery.crossajax,相比AJAXCDR的优点:
1、基于jquery,方便部署
2、不受utf-8编码限制,在请求gbk编码的静态页时很有用
3、回调函数封装,没有全局变量污染
4、js引用放在head区域也可,无需考虑等待装载问题,避免了“不支持该方法”等错误
jquery.crossajax的用法说明:
1 | $.request(url,data,'function(data){callback(data)}',method,charset) |
url:是ajax请求的地址
data:是post提交的数据,以 var1=data1&var2=data2 的形式收集,表单项目请自行收集,没有请使用空字符”"。注意,如果method是GET方法,此处会自动忽略
callback:是回调函数,自动第一个参数为ajax返回的内容
method:ajax请求方法,GET(默认)和POST
charset:处理返回内容的编码,支持gbk 和 utf-8(默认)
注意:跨域还是会受url地址所在服务器crossdomain.xml文件设置的限制
打包下载(附AS3源码):jquery.crossajax package (200)
注:如果自行修改request.as,编译request.as时需要用到flex4 sdk(请到adobe open source下载),cmd命令行输入“mxmlc request.as”即可(需要JAVA环境)
request.swf 必须要放在 demo.html 同一个域名下面吗? 我想把它一起放在 服务端 求解释
request.swf放在哪里都可以,只是需要自己修改jquery.crossajax.js文件的swfpath
楼主,你的这个工具不能返回JOSN数据呀
如:{“state”:true}
json数据得你自己来处理,利用jquery的parseJSON格式化返回的字符串就可以得到json数据
建议增加访问无响应时,返回提示
request.swf 这个放在远端有问题
@ylkj
呵呵,源码是开放的,你可以自己修改~
@蓝天
注意crossdomain.xml文件配置
修改源码?是修改那一个,flash那个嘛。