您现在的位置:首页 --> JavaScript --> 研究ext发现ajax跨域实现
研究ext发现ajax跨域实现
浏览:4361次 出处信息
之前一直没有深入研究过ajax跨域实现的问题,最近研究ext发现他的例子里可以请求远程的页面,它的方法叫scriptTag。其实就是使用动态载入js脚本的方式来实现的。
转一个文章过来,具体就不写了,ext是通过传一个callbak方法动服务器页面,在返回结果中加上执行 callbak方法,总得来说服务器代码还要自己可以控制,如果完全想读别人的数据还是做不到。
作者:zhanglp888
用json和script标签,解决ajax的跨域问题。
ajax的XMLHttpRequest因为js的安全问题是不能跨域的,但是<script></script>可以用src=”http://otherSite.com/a.js”可以跨域,所以动态写入一个<script></script>就OK了。
scr指向一个其它站点的文件,比如:a.php?id=15
让a.php echo() 一个json的字符串
json 参考:http://www.json.org
下面为动态加载script标签的js
| 以下是代码片段: <script> var element = document.createElement(“script”); function createScript(compId,dataId){ element.src = “http://othersite.com/json.php?comp_id=” + compId + “&data_id=” + dataId + “”; element.type = “text/javascript”; element.language = “javascript”; } function writeContent(){ alert(productJSON.product[0].name); } window.onload = function(){ createScript(1,2); document.getElementsByTagName(“head”)[0].appendChild(element); } if(document.all){ element.onreadystatechange = function(){//IE用 var state = element.readyState; if (state == “loaded” || state == “interactive” || state == “complete”) { writeContent(); } }; } else { element.onload = function() {//FF用 writeContent(); }; } </script> |
下面是json.php echo出来的内容
| 以下是代码片段: var productJSON = {’product’: [ {’name’ : ’物件名1’}, {’building’ : ’建物名1’}, {’address’ : ’5’} ] }; |
建议继续学习:
- 10个强大的Ajax jQuery文件上传程序 (阅读:8363)
- 优雅绝妙的Javascript跨域问题解决方案 (阅读:7538)
- jQuery中getJSON跨域原理详解 (阅读:6028)
- 跨域请求的iframe解决方案(1) (阅读:5963)
- ajax-cross-domain (阅读:5492)
- 利用跨域资源共享(CORS)实现ajax跨域调用 (阅读:4971)
- 三谈Iframe自适应高度 (阅读:4270)
- 使用document.domain和iframe实现站内AJAX跨域 (阅读:4055)
- 使用window.postMessage实现跨域通信 (阅读:3907)
- 跨域请求的iframe解决方案(2) (阅读:3791)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
扫一扫订阅我的微信号:IT技术博客大学习
<< 前一篇:ajax跨域请求问题解决方案
后一篇:为脚本语言平反-JavaScript篇(1) >>
文章信息
- 作者:nick 来源: Codyy技术团队
- 标签: ajax ext 跨域
- 发布时间:2009-10-20 22:51:13
建议继续学习
近3天十大热文
-
[895] WordPress插件开发 -- 在插件使用 -
[136] 解决 nginx 反向代理网页首尾出现神秘字 -
[56] 整理了一份招PHP高级工程师的面试题 -
[54] Innodb分表太多或者表分区太多,会导致内 -
[53] 如何保证一个程序在单台服务器上只有唯一实例( -
[53] 用 Jquery 模拟 select -
[52] 海量小文件存储 -
[52] CloudSMS:免费匿名的云短信 -
[52] 全站换域名时利用nginx和javascri -
[52] 分享一个JQUERY颜色选择插件
