xml地图|网站地图|网站标签 [设为首页] [加入收藏]

软件资讯

当前位置:美高梅游戏网站 > 软件资讯 > 美高梅游戏网站如何解决Ajax跨域问题-1

美高梅游戏网站如何解决Ajax跨域问题-1

来源:http://www.gd-chuangmei.com 作者:美高梅游戏网站 时间:2019-09-04 02:11

 

              如何解决Ajax跨域问题

Ajax的应用中,由于安全的问题,浏览器默认是不支持跨域调用的。传统解决的方法,包括:(参考

     最近在做AJAX调用C的问题,出现跨域问题,学习总结如下:

 

 

Local proxy:

  在做ajax读取数据的时候,经常会遇到ajax需要跨域的问题,但由于浏览器安全方面的限制,XMLHttpRequest()只能访问同一域下的数据,这往往很有局限性,如果我们要访问在另一个域名下提供的数据,那就会由于安全问题而拒绝访问。下面介绍一下ajax跨域的解决办法:

Needs infrastructure (can't run a serverless client) and you get double-taxed on bandwidth and latency (remote - proxy - client).

网上也有不少同行提供了很多的解决办法,不过很多效果都不好,要么就是不兼容。解决办法主要有四种:

Flash:

1. iframe方法:这个适合同一主域名的二级域及主域名之间的相互访问。比如:www.a.com和blog.a.com之间的ajax交互,在两个域下的页面都加上document.domain = "a.com"就可以了。

Remote host needs to deploy a crossdomain.xml file, Flash is relatively proprietary and opaque to use, requires learning a one-off moving target programming langage.

2. 两个完全不同域名下的互访,可以利用iframe的hash属性来调用,本方法有一定局限性,不做多介绍,更多的内容可以搜索一些参考资料看看。

Script tag:

3. 通过中间桥梁过渡,也可以称为代理访问。比如www.a.com下一个test.html页面要访问www.b.com/data.rss数据,由于 data.rss在b.com域名下,在a下不能直接访问,但asp/php/jsp/.net等程序可以请求远程文件,这些后台程序就可以成为ajax 的桥梁了,我们先用后台动态程序请求远程数据,获取后再传递给test.html,由于这些后台程序和test.html在同一域名下,所以就可以直接访问了,跨域问题解决了。 |演示文件|

Difficult to know when the content is available, no standard methodology, can be considered a "security risk".

4. 通过<script>标签来解决,此方法原理就是利用<script></script>可以调用跨域的js文件,比如www.a.com下的文件访问www.b.com下的js文件,<script language="javascript" scr="

以上方法都各有缺陷,都不是很好多解决方案。后来出现了一种叫JSON with Padding 的技术,简称JSONP .(原理参考


 

      应用JSONP实现Json数据跨域调用,需要服务器端与客户端的合作完成。引用Jquery官方的例子,客户端掉用如下:

 

$.getJSON("",

        function(data){

          $.each(data.items, function(i,item){

            $("<img/>").attr("src", item.media.m).appendTo("#images");

            if ( i == 3 ) return false;

          });

        });

本文由美高梅游戏网站发布于软件资讯,转载请注明出处:美高梅游戏网站如何解决Ajax跨域问题-1

关键词:

上一篇:jQuery对表单、表格的操作及越来越多选择

下一篇:没有了