初识ajax跨域
最近刚开始学Ajax,写出来的程序获取文本内容的时候一直获取不到
一直报这样的错来着,问了一下同僚然后了解到是跨域的问题,但是我根本不知道怎么写啊QAQ
然后就来学了。
首先解释一下什么是ajax跨域
跨域问题来源于JavaScript的同源策略,即只有 协议+主机名+端口号 (如存在)相同,则允许相互访问。也就是说JavaScript只能访问和操作自己域下的资源,不能访问和操作其他域下的资源。
其中同源策略指的是:请求的url地址,必须与浏览器上的url地址处于同域上,也就是域名,端口,协议相同。
关于为什么会出现跨域问题
跨域,指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对JavaScript施加的安全限制。
for example~
1.http://www.abc.com/a/b 调用 http://www.abc.com/d/c(非跨域
2.http://www.abc.com/a/b 调用 http://www.def.com/d/c (跨域:域名不一致)
3.http://www.abc.com/a/b 调用 https://www.abc.com/d/c (跨域:协议不同)
4.http://www.abc.com:81/a/b 调用 http://www.abc.com:82/d/c (跨域:端口不一致)
关于ajax跨域问题的解决方法
1.使用 jsonp
2.服务器代理
3.在服务端设置response header中Access-Control-Allow-Origin字段
网友评论