一、什么叫做跨域
当协议、子域名、主域名、端口号中的任意一个不相同时,都算不同域,不同域之间互相请求资源就叫做“跨域”。
二、出现跨域问题的情况
当我们使用AJAX请求其他域名的情况下,会出现拒绝访问的情况,这是因为基于安全的考虑,AJAX只能访问本地的资源,而不能跨域访问。比如你的网站域名是jquery.com,想要访问react.com中的内容浏览器是不允许的。
三、处理跨域的方法
1、代理
这种方式是通过后台获取其他域名下的内容,然后再把获得的内容返回到前端,这样一来因为是在同一个域名下,所以不会出现跨域的问题。
2、JSONP
JSONP本质上就是一个javascript的标签。
假设在http://www.jquery.com/index.php这个页面中向http://www.react.com/getinfo.php提交一个GET请求,那么我们在www.jquery.com页面中添加如下代码
var eleScript = document.createElement("script"); eleScript.type = "text/javascript"; eleScript.src = "http://www.react.com/getinfo.php"; document.getElementsByTagName("head")[0].appendChild(eleScript);
当GET请求从http://www.react.com、getinfo.php返回时,可以返回一段javascript代码。