AJAX跨域问题的解决办法
创始人
2024-03-21 16:41:10
0

最近公司内部的architecture组正在热烈讨论AJAX,***难免会谈到如何跨域这个问题,因为从AJAX诞生那天起,XMLHttprequest对象在firefox下不能跨域请求的问题就一直存在,等待浏览器们去解决这个问题显然不太现实,聪明的Web开发人员们早就想了一系列的方法来解决这个问题,下面列举两个比较不错的方法:

1. 使用中间层过渡的方式:

中间过渡,很明显,就是在AJAX与不同域的服务器进行通讯的中间加一层过渡,这一层过渡可以是PHP、JSP、c++等任何具备网络通讯功能的语言,由中间层向不同域的服务器进行读取数据的操作。拿PHP做一个例子,如果需要对不同域的某一个php进行通讯,现在客户端的xmlhttprequest先query本域的一个PHP,然后由本域的这个PHP去和不同域的PHP进行通讯,然后由本域的PHP输出response;

2. 使用<script>标签

这个方法是利用<script>标签中的src来query一个PHP获得response,因为<script>标签的src属性不存在跨域的问题。

举个例子来让大家看得更清楚一点吧:

<script LANGUAGE="Javascript" src="" id="get">
</script>
<script LANGUAGE="Javascript">
<!--
function get(url)
    {
        var obj = document.getElementById("get");
        obj.src = url;
        (obj.readStatus == 200)
        {
            alert(param);
        }
    }
function query()
    {
get(get.php);
    }
//-->
</script>
<BODY>
<INPUT TYPE="button" value="CLICK ME" onclick="query()">
</BODY>
</HTML>

其中get.php的代码是:

<?php
echo "var param = 'www.achome.cn'";
?>

***的运行结果是,当你点击那个button,它会出现一个内容为”www.achome.cn”的对话框。

这个方法又叫做ajaj或者ajax without xmlHttprequest,把x换成了j,是因为使用了<script>标签而没有用到xml和xmlHttprequest的缘故。

怎么样,很简单吧,我看到过很多人不愿意去正视ajax所存在的技术瓶颈,其实AJAX更应该是Ajax而不是AJAX,突出***个A是想强调其实AJAX发扬的是一种异步传输的方法,而不是具体到底使用了哪种技术。

【编辑推荐】

  1. 基于Dojo实现MVC模式下的Ajax应用
  2. 使用AJAX扩展器自定义控件
  3. 浅谈Ajax在ASP.Net中的使用

相关内容

热门资讯

施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...
2012年第四季度互联网状况报... [[71653]]  北京时间4月25日消息,据国外媒体报道,全球知名的云平台公司Akamai Te...
VMware vFabric (2012年5月17日中国北京)——全球虚拟化和云基础架构厂商VMware公司(NYSE:VMW)今...
由浅入深学习CentOS入门 在系统的学习CentOS入门的知识中,我们掌握了一些基本的设置。今天我们来讲一下CentOS入门中的...
虚拟现实 人工智能和人体未来会... 探讨像虚拟现实和人工智能这样的技术将会跟人体发生怎样的融合。未来将会出现模糊虚拟现实和现实本身界限的...