首先什么是跨域

跨域是指从一个域名的网页去请求另一个域名的资源。比如从www.baidu.com 页面去请求 www.google.com 的资源。跨域的严格一点的定义是:只要 协议,域名,端口有任何一个的不同,就被当作是跨域

为什么浏览器要限制跨域访问

原因就是安全问题:如果一个网页可以随意地访问另外一个网站的资源,那么就有可能在客户完全不知情的情况下出现安全问题。

为什么要跨域

既然有安全问题,那为什么又要跨域呢? 有时公司内部有多个不同的子域,比如一个是b.a.com ,而应用是放在c.a.com , 这时想从b.a.com去访问 location.company.com 的资源就属于跨域。

解决方法

在Laravel项目:app/Providers/RouteServiceProvider.php文件中 public function map方法里加入以下代码:

// 统一处理域名跨域问题

if (isset($_SERVER['HTTP_ORIGIN'])){

$url = $_SERVER['HTTP_ORIGIN'];

}else{

$url = "*";

}

header("Access-Control-Allow-Credentials:true");

header('Access-Control-Allow-Origin:'.$url);

header('Access-Control-Allow-Headers: token');

这样跨域请求问题就解决了

好文推荐

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。