关于Ajax跨域的实现

我们都知道由于javascript的同源策略,所以使得javascript的跨域变的基本不可能,但是对于跨子域来说,我们可以添加document.domain配合iframe来实现Ajax的跨子域实现,不过这样带给我们额外的开销,而且往往我们需要跨全域而不是跨子域。

对于必须要进行跨域通信,我个人觉得还是由后端服务来做,不要借助javascript来进行。

但是在某些特定的情况下,我们不得不应用Ajax来进行跨域通信,可能我们对服务端没有权限,又可能服务商提供了一个ajax跨域的接口。

本文就Ajax跨域实现的原理进行简单的介绍,具体应用实例可以自己百度一下把。

Ajax跨域的主要实现思想便是:

1
<script src="http://analytics.163.com/ntes.js" type="text/javascript"></script>

大家都知道,这样的代码是可以进行跨域链接外部的js脚本的,但是看下面的代码:

1
2
3
4
5
<script src="http://analytics.163.com/alert.php" type="text/javascript"></script> 
alert.php的代码很简单:
<?php
echo "alert('success')"
?>

大家会惊奇的发现这段alert(‘success’)代码被顺利的运行了,这就是我们实现Ajax跨域的基础,现在让我们发起一个跨域的Ajax请求把。

比如我们验证用户输入的用户名是否存在!需要访问用户服务器,进行Ajax跨域请求。

1
var name = "snoopy"  //比如用户输入的是snoopy

然后我们在头部创建一个