栏目导航
热点推荐
- 流行的70个AJAX演示及下载
- 20个Ajax关键议题
- AJAX技术在PHP开发中的简单应用
- 如何选择使用AJAX的最佳时机
- 一日精通Ajax技术
- [四天学会ajax] 学习Ajax教程第
- [四天学会ajax] 学习Ajax教程第
- ajax的server部分(php版)
- 在Ajax 应用程序中实现数据之间
- 解决AJAX 跨域访问完整解决方案
- Ajax获取页面被缓存的解决方案
- ajax检测用户名
阅览排行
解决ajax跨域问题的实例
www.jz123.cn 2008-09-28 来源: 中国建站 编辑整理 我要投递新闻
要解决ajax跨域问题,网上给出的方法有二:
1是构建服务器端的代理。简而言之,就是ajax中调用的实质还是本机的url,而服务器端替js去取回远端地址。
2.利用script标记,生成一个标签。在js加载完成后,再执行后续操作。
就是将原来新建xmlHTTPrequest对象的操作改成了新建script标签的操作.
这里给出一个例子:
#ajah.js
var Ajah=function(url,varname,handleSuccess,handleFailure){ /** * handleSuccess,handleFailure must be functions * */ script = document.createElement("script"); script.src=url; var handler = function(str) { handleSuccess(str); } script.onload = function() { var json=eval(varname); handler(json); } if(window.ie) { script.onreadystatechange = function() { if(script.readyState=='complete'||script.readyState== 'loaded') { var json=eval(varname); if(typeof json != 'undefined') { handler(json); } } } } document.body.appendChild(script); } |
而在网页中应这样调用:
#demo.html
<pre> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN"> <html> <head> <meta name="generator" content= "HTML Tidy for Linux (vers 1 September 2005), see www.w3.org"> <title></title> <script src="mootools.js"></script> <script src="ajah.js"></script> </head> <body> <script> var ajah=new Ajah("data.js","json198",function(str){ console.debug("returned:"); console.debug(str); }, function(str){}); </script> </body> </html> </pre> |
被调用的数据文件如下
#data.js
var json198="hello,this is json198"; |
0
上一篇:Ajax实现无刷新树 下一篇:[四天学会ajax]学习ajax教程第一天