我们都知道由于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的代码很简单:
echo "alert('success')"
大家会惊奇的发现这段alert(‘success’)代码被顺利的运行了,这就是我们实现Ajax跨域的基础,现在让我们发起一个跨域的Ajax请求把。
比如我们验证用户输入的用户名是否存在!需要访问用户服务器,进行Ajax跨域请求。
1 | var name = "snoopy" //比如用户输入的是snoopy |
然后我们在头部创建一个