研究ext发现ajax跨域实现
来源:互联网 发布:关于乒乓球赛事的软件 编辑:程序博客网 时间:2024/05/01 22:40
之前一直没有深入研究过ajax跨域实现的问题,最近研究ext发现他的例子里可以请求远程的页面,它的方法叫scrīptTag。其实就是使用动态载入js脚本的方式来实现的。
转一个文章过来,具体就不写了,ext是通过传一个callbak方法动服务器页面,在返回结果中加上执行 callbak方法,总得来说服务器代码还要自己可以控制,如果完全想读别人的数据还是做不到。
作者:zhanglp888
用json和scrīpt标签,解决ajax的跨域问题
ajax的XMLHttpRequest因为js的安全问题是不能跨域的
但是<scrīpt></scrīpt>可以用src=”http://otherSite.com/a.js”可以跨域
所以动态写入一个<scrīpt></scrīpt>就OK了
scr指向一个其它站点的文件,比如:a.php?id=15
让a.php echo() 一个json的字符串
json 参考:http://www.json.org
下面为动态加载scrīpt标签的js
Javascrīpt代码
1. <scrīpt>
2.
3. var element = document.createElement(“scrīpt”);
4.
5. function createscrīpt(compId,dataId){
6. element.src = “http://othersite.com/json.php?comp_id=” + compId + “&data_id=” + dataId + “”;
7. element.type = “text/javascrīpt”;
8. element.language = “javascrīpt”;
9. }
10.
11. function writeContent(){
12. alert(productJSON.product[0].name);
13. }
14.
15. window.onload = function(){
16. createscrīpt(1,2);
17. document.getElementsByTagName(“head”)[0].appendChild(element);
18. }
19.
20. if(document.all){
21. element.onreadystatechange = function(){//IE用
22.
var state = element.readyState;
23.
if (state == “loaded” || state == “interactive” || state == “complete”) {
24. writeContent();
25. }
26. };
27.
28. } else {
29. element.onload = function() {//FF用
30. writeContent();
31. };
32. }
33.
34.
35. </scrīpt>
下面是json.php echo出来的内容
var productJSON = {’product’: [
{’name’ : ‘物件名1′},
{’building’ : ‘建物名1′},
{’address’ : ‘5′}
]
};
转一个文章过来,具体就不写了,ext是通过传一个callbak方法动服务器页面,在返回结果中加上执行 callbak方法,总得来说服务器代码还要自己可以控制,如果完全想读别人的数据还是做不到。
作者:zhanglp888
用json和scrīpt标签,解决ajax的跨域问题
ajax的XMLHttpRequest因为js的安全问题是不能跨域的
但是<scrīpt></scrīpt>可以用src=”http://otherSite.com/a.js”可以跨域
所以动态写入一个<scrīpt></scrīpt>就OK了
scr指向一个其它站点的文件,比如:a.php?id=15
让a.php echo() 一个json的字符串
json 参考:http://www.json.org
下面为动态加载scrīpt标签的js
Javascrīpt代码
1. <scrīpt>
2.
3. var element = document.createElement(“scrīpt”);
4.
5. function createscrīpt(compId,dataId){
6. element.src = “http://othersite.com/json.php?comp_id=” + compId + “&data_id=” + dataId + “”;
7. element.type = “text/javascrīpt”;
8. element.language = “javascrīpt”;
9. }
10.
11. function writeContent(){
12. alert(productJSON.product[0].name);
13. }
14.
15. window.onload = function(){
16. createscrīpt(1,2);
17. document.getElementsByTagName(“head”)[0].appendChild(element);
18. }
19.
20. if(document.all){
21. element.onreadystatechange = function(){//IE用
22.
var state = element.readyState;
23.
if (state == “loaded” || state == “interactive” || state == “complete”) {
24. writeContent();
25. }
26. };
27.
28. } else {
29. element.onload = function() {//FF用
30. writeContent();
31. };
32. }
33.
34.
35. </scrīpt>
下面是json.php echo出来的内容
var productJSON = {’product’: [
{’name’ : ‘物件名1′},
{’building’ : ‘建物名1′},
{’address’ : ‘5′}
]
};
- 研究ext发现ajax跨域实现
- Ext 2.2-2.3 Ext.ajax.request 同步请求的实现
- Ext.Ajax.request提交实现waitMsg效果
- Ext Ajax实现的RSS阅读器
- Ajax跨域问题研究笔记
- Ajax跨域问题研究笔记
- Ajax跨域问题研究笔记
- Ajax跨域问题研究笔记
- AJAX跨域数据获得的研究
- 关于Ajax跨域问题研究
- Ajax跨域问题研究笔记
- EXT AJAX跨域访问之动态加载JS
- (Ext / Js) ajax 跨域请求发送两次解决方案
- ajax Ext
- ext--Ajax
- Ext Ajax
- 发现新大陆...Ext JS
- 园区网的拓扑发现算法的研究与实现
- SMARTY分页详解
- smarty中foreach,section循环注意点及include,insert,literal等用法
- 很有用的文件操作php函数
- 如何在PHP中进行身份认证
- smarty学习入门
- 研究ext发现ajax跨域实现
- Jquery实现简单的表格添加、编辑、删除教程
- 前段时间写的一个获取腾讯星座的函数
- PHP使用Adodb.Connection
- Dreamweaver制作网页部分技巧详解
- vs2005中的空格都变成了绿点,眼花缭乱地,怎么给它取消啊
- 基于PHP的聊天室编程思想
- 硬件防火墙基本知识
- 超轻量级MVC框架的设计和实现 (1)