AJAX跨域问题的解决办法

乐陵张强

乐陵张强

2016-02-19 20:03

下面,图老师小编带您去了解一下AJAX跨域问题的解决办法,生活就是不断的发现新事物,get新技能~

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

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

  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的代码是:

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

<?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发扬的是一种异步传输的方法,而不是具体到底使用了哪种技术。

展开更多 50%)
分享

猜你喜欢

AJAX跨域问题的解决办法

Web开发
AJAX跨域问题的解决办法

解决ajax跨域问题的实例

Web开发
解决ajax跨域问题的实例

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

如何解决ajax跨域的问题

Web开发
如何解决ajax跨域的问题

ajax跨域问题的实例

Web开发
ajax跨域问题的实例

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

Ajax跨域问题的一些解决方法

Web开发
Ajax跨域问题的一些解决方法

ajax跨域访问的解决方案

Web开发
ajax跨域访问的解决方案

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

Java编程中异常处理的优劣之道

Java编程中异常处理的优劣之道

使用AJAX优化客户端:Iconix Pharmaceuticals使用AJAX和J2EE创建

使用AJAX优化客户端:Iconix Pharmaceuticals使用AJAX和J2EE创建
下拉加载更多内容 ↓