2018-12-16

初识ajax跨域

最近刚开始学Ajax,写出来的程序获取文本内容的时候一直获取不到


2018-12-16_第1张图片

一直报这样的错来着,问了一下同僚然后了解到是跨域的问题,但是我根本不知道怎么写啊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字段

你可能感兴趣的:(2018-12-16)