前后端项目跨域访问时会遇到此问题,解决方法如下:

创建一个中间件

php artisan make:middleware EnableCrossRequestMiddleware

该中间件的文件路径为:app/Http/Middleware/EnableCrossRequestMiddleware.php

中间件 EnableCrossRequestMiddleware 内容如下:

<?php
/**
* 跨域设置
*/ namespace App\Http\Middleware; use Closure;
use Illuminate\Http\Response; class EnableCrossRequestMiddleware
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
$response = $next($request); $origin = $request->server('HTTP_ORIGIN') ? $request->server('HTTP_ORIGIN') : '';
$allow_origin = config('origin.allowed'); if (in_array($origin, $allow_origin)) { $response->header('Access-Control-Allow-Origin', $origin);
$response->header('Access-Control-Allow-Headers', 'Origin, Content-Type, Cookie, X-CSRF-TOKEN, Accept, Authorization, X-XSRF-TOKEN');
$response->header('Access-Control-Expose-Headers', 'Authorization, authenticated');
$response->header('Access-Control-Allow-Methods', 'GET, POST, PATCH, PUT, OPTIONS');
$response->header('Access-Control-Allow-Credentials', 'true');
}
return $response;
}
}

app/Http/Kernal.php 文件中将其注册为全局中间件

namespace App\Http;

use App\Http\Middleware\AuthenticateMain;
use App\Http\Middleware\AuthenticateSeller;
use App\Http\Middleware\AuthenticateUser;
use Illuminate\Foundation\Http\Kernel as HttpKernel; class Kernel extends HttpKernel
{
/**
* The application's global HTTP middleware stack.
*
* These middleware are run during every request to your application.
*
* @var array
*/
protected $middleware = [
\App\Http\Middleware\CheckForMaintenanceMode::class,
\Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
\App\Http\Middleware\TrimStrings::class,
\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
\App\Http\Middleware\TrustProxies::class,
\App\Http\Middleware\EnableCrossRequestMiddleware::class, // 添加这一行将其注册为全局中间件
];
}

增加配置文件app/config/origin.php,内容为允许的域名

<?php
return [ 'allowed' => [
'http://test.example.com',
'http://test-fe.example.com:8080'
] ];

PS - 个人博客原文:Laravel 5.7 No 'Access-Control-Allow-Origin' header is present on the request resource

最新文章

  1. LeetCode &quot;Count of Smaller Number After Self&quot;
  2. [LeetCode] 287. Find the Duplicate Number 解题思路
  3. Hashtable键值集合
  4. zoj 3203 Light Bulb,三分之二的基本问题
  5. C#关于HttpClient的应用(一):获取IP所在的地理位置信息
  6. struts2知识点复习
  7. 【渗透课程】第一篇-Web渗透需要接触的语言
  8. Arduino初学
  9. zoj 3601
  10. 阿里巴巴图标库iconfont上传svg后,显示不了图片
  11. Linux 的系统目录介绍
  12. PHP实用代码片段(一)
  13. 最大子序和的golang实现
  14. POJ3666 线性dp_离散化_贪心
  15. 【Canal源码分析】重要类图
  16. TensorFlow训练MNIST数据集(1) —— softmax 单层神经网络
  17. [Ubuntu] fg、bg让你的进程在前后台之间切换
  18. 在ubuntu中安装rpm包
  19. .NET4.0中使用4.5中的 async/await 功能实现异步
  20. POJ 1661 Help Jimmy(二维DP)

热门文章

  1. 关于Cocos Studio制作游戏资源
  2. 【转】WCF服务的创建和发布到IIS
  3. Netstat命令(windows下)
  4. MongoDB状态查询:db.serverStatus()
  5. 不可将布尔变量直接与 TRUE、FALSE 或者 1、0 进行比较
  6. css -- css选择器
  7. [CS]C#操作word
  8. layui时间,table,大图查看,弹出框,获取音频长度,文件上传
  9. TCP/IP协议族-----24、网络管理(SNMP)
  10. api数据接口