解决AJAX 跨域访问完整解决方案

2016-02-19 20:35 6 1 收藏

今天图老师小编给大家精心推荐个解决AJAX 跨域访问完整解决方案教程,一起来看看过程究竟如何进行吧!喜欢还请点个赞哦~

【 tulaoshi.com - Web开发 】

在一项目中由于需要使用js事件中使用AJAX获取数据信息,但这其中涉及到跨域取数据的问题。在网上搜了好半天最后发现了ADAJAX这样一个东东,貌似可以解决这样的问题:

advAJAX.get({
    url: "http://www.example.com/page.html",
    onSuccess : function(obj) { alert(obj.responseText); }
});
需要先引入:adajax.js(可以下面网站下载)

详细地址:http://advajax.anakin.us/index-en.htm

但是这最终还不能解决我的问题,我需要将从其他网站获取的内容强制转化为js可执行脚本:

advAJAX.get({
    url: "http://www.abc.com/page.html",
    onSuccess : function(obj) { eval(obj.responseText); }
});
这时候问题又出来,在IE中提示有安全警告,然后便不能正确执行了,有些郁闷了,在FIREFOX中根本都没有任何反应,通过调试跟踪都无法执行到onSuccess事件来。

弄了很久,最终决定直接在js脚本中引入url作为js脚本嵌套执行,这下好像是通关了啊。

var requestUrl='http://www.sample.com/UI/AdMessage/GetAdMessageByKey.aspx?G&SiteId='+SiteId+'&SiteDomain='+SiteDomain+'&Index='+linkId+'&KeyId='+k.id+'&stamptime=' + new Date().getTime();
              
      LoadAdScript(requestUrl);

 

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

function LoadAdScript(script)
       {
       var adScript=document.getElementById("adScript");
       // var adCss=document.getElementById("AdCss");
        if(adScript)
         document.body.removeChild(adScript);
          // if(adCss) head.removeChild(adCss);
          
        var l=CreateEl("script");
        l.setAttribute("type","text/javascript");
      
        l.setAttribute("src",script);
     
        l.setAttribute("id","adScript");
       document.body.appendChild(l);
      
       }
值得注意的是GetAdMessageByKey.aspx输出必须为js脚本(比如:Response.write("alert('hello my god');");类似文本

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

来源:http://www.tulaoshi.com/n/20160219/1624060.html

延伸阅读
标签: Web开发
这几天脑细胞剩下的不多了,不过问题都一个个解决了。 我希望搜索引擎能够搜索到这篇文章,给正在需要解决此类问题的朋友分享我的解决方案。 例如 a.com站点通过ajax访问聚合b.com站点内的RSS(xml)资源,这是跨域访问不能实现,网上我也查阅了大量的资料,没有找到有效的办法,有些变通的方法都必须具有b.com站点的权限对b.com站点进行设置...
标签: Web开发
突然感觉就是这里的问题,研究一下,搞定后其实觉得挺容易的,只是自己知识还是有些欠缺,解决方法如下: 阻塞的AJAX请求 我们先来证实一下请求的阻塞情况吧。我们使用如下的代码:  连续发起三个请求  代码如下: function simpleRequest()  {     var request = new&nb...
标签: Web开发
原因: 浏览器安全上做了限制,禁止ajax跨域获得数据。 解决方法: 通过jquery提供的$.getJSON()可以跨域获得JSON格式的数据。优点:兼容性强。 Java后台代码: 代码如下: protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String callback =req.getParameter("ca...
忘记iPhone访问限制密码解决方案   如果不小心忘记了iPhone的访问限制密码怎么办?我们都知道iPhone的访问限制是可以保护个人信息或软件安全,同时还可以禁止别人在设备上安装或者删除某些东西。但人总会有健忘的时候,所以把iPhone的访问限制密码要怎么做?刷机?真没这个必要。 已越狱设备解决方案参考 详细步骤如下: ...
忘记iPhone访问限制密码解决方案参考   如果不小心忘记了iPhone的访问限制密码怎么办?我们都知道iPhone的访问限制是可以保护个人信息或软件安全,同时还可以禁止别人在设备上安装或者删除某些东西。但人总会有健忘的时候,所以把iPhone的访问限制密码要怎么做?刷机?真没这个必要。 已越狱设备解决方案参考 详细步骤如下...

经验教程

773

收藏

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