Ajax的跨域请求

一、什么叫做跨域

当协议、子域名、主域名、端口号中的任意一个不相同时,都算不同域,不同域之间互相请求资源就叫做“跨域”。

二、出现跨域问题的情况

当我们使用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代码。

  

原文地址:https://www.cnblogs.com/daikefeng/p/6370863.html