首先什么是跨域
跨域是指从一个域名的网页去请求另一个域名的资源。比如从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');
这样跨域请求问题就解决了
好文推荐
发表评论