Ajax的使用以及跨域(下)

来源:互联网 发布:同花顺行情软件 编辑:程序博客网 时间:2024/06/05 21:06

上一篇文章中我们实现了自己的myAjax封装方法,具体是模仿着jQuery的思路,其实真正的jQuery的ajax方法中,还考虑到另外一个问题的处理,那就是跨域。

在讲跨域之前呢,我们先来回想一下,我们学习ajax的目的是什么?其实学习ajax的目的很简单,就是为了获取到服务器的数据。典型的场景比如说,我们通常在注册界面需要输入用户名和密码,在输入完用户名,光标切换到密码输入框的时候,这时候往往在用户名输入框的后面会有一个提示,告知你所输入的用户名是否可用,也就是是否有别人已经使用了该用户名进行注册。对于前端界面来说,我们必然是不知道用户名究竟有没有被别人使用过,此时只有让服务器告诉我们用户名有没有被使用过。所以此时我们需要访问服务器给我们提供的一个接口地址,调用这个接口地址,传入对应的参数就能够得到数据,这个数据就是服务器告诉我们该用户名是否可用的数据。所以在这时,我们就需要访问服务器的数据,所以就需要使用ajax.

所以使用ajax,就是为了异步获取服务器的数据。

那什么是跨域呢?这里就需要提到我们使用ajax时的一个限制,那就是同源策略。

所谓的同源策略就是你要使用ajax的前端界面,和你需要访问的服务器地址必须是同域名、同端口,同协议,否则不允许访问。

比如:当前前端界面的地址是http://www.abc.com/test.html,如果它要访问的服务器地址为

http://www.haha.com/checkusername.php ,那就访问不到,因为前端界面和服务器地址的域名不一样。具体同源策略的规则可以查看下图: