解决ajax跨域问题的实例

2016-02-20 00:39 39 1 收藏

有一种朋友不在生活里,却在生命力;有一种陪伴不在身边,却在心间。图老师即在大家的生活中又在身边。这么贴心的服务你感受到了吗?话不多说下面就和大家分享解决ajax跨域问题的实例吧。

【 tulaoshi.com - Web开发 】

要解决ajax跨域问题,网上给出的方法有二:

1是构建服务器端的代理。简而言之,就是ajax中调用的实质还是本机的url,而服务器端替js去取回远端地址。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

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

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

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";
funciton Ajah(url,varname,handleSuccess,handleFailure){}
Ajah这个构造函数调用四个参数:
url:远端地址
varname:远端返回数据的变量名
handleSuccess:加载完毕后加载的函数
handleFailure:暂时没用上

来源:http://www.tulaoshi.com/n/20160220/1632336.html

延伸阅读
标签: Web开发
这几天脑细胞剩下的不多了,不过问题都一个个解决了。 我希望搜索引擎能够搜索到这篇文章,给正在需要解决此类问题的朋友分享我的解决方案。 例如 a.com站点通过ajax访问聚合b.com站点内的RSS(xml)资源,这是跨域访问不能实现,网上我也查阅了大量的资料,没有找到有效的办法,有些变通的方法都必须具有b.com站点的...
标签: Web开发
这几天脑细胞剩下的不多了,不过问题都一个个解决了。 我希望搜索引擎能够搜索到这篇文章,给正在需要解决此类问题的朋友分享我的解决方案。 例如 a.com站点通过ajax访问聚合b.com站点内的RSS(xml)资源,这是跨域访问不能实现,网上我也查阅了大量的资料,没有找到有效的办法,有些变通的方法都必须具有b.com站点的权限对b.com站点进行设置...
标签: Web开发
代码如下: /**//* 异步请求类 作者:吾非无心 创建时间:2009.2 --------------------------------------------------------------------------------------------------------------------------------- 修改记录: 2009.4.27——添加 URL 检测功能,如果是“http://xxxx.xxx.xx.xx/..”这样的格式,使用系统提供的“/getUrl.aspx...
标签: Web开发
Cookie跨域操作看来是个简单的问题,因为只要指定Domain属性为指定网站的根域名就可以了. 但是笔者在实际使用过程中却遇到了一些问题,的确值得注意. 环境介绍 cookie在www主域名下创建,并写入Domain属性,如:(为方便调试以下代码皆为asp代码) Code: Write.asp % Response.Cookies(CookieName)("UserNa...
标签: Web开发
时间过得好快,又被拉回js战场时, 跨域问题这个伤疤又开疼了. 好在,有jquery帮忙,跨域问题似乎没那么难缠了.这次也借此机会对跨域问题来给刨根问底,结合实际的开发项目,查阅了相关资料,算是解决了跨域问题..有必要记下来备忘. 跨域的安全限制都是指浏览器端来说的.服务器端是不存在跨域安全限制的, 所以通过本机服务器端通过类似httpclient...

经验教程

597

收藏

29
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部