请求的资源 laravel 5.8.8 上没有“Access-Control-Allow-Origin”标头
Posted
技术标签:
【中文标题】请求的资源 laravel 5.8.8 上没有“Access-Control-Allow-Origin”标头【英文标题】:No 'Access-Control-Allow-Origin' header is present on the requested resource laravel 5.8.8 【发布时间】:2019-10-07 17:07:44 【问题描述】:我已经按照 github 存储库中的自述文件中的说明安装了 barryvdh/laravel-cors。我仍然在请求的资源错误中出现 No 'Access-Control-Allow-Origin' 标头。我正在使用 vue、axios 和 laravel 5.8.8
安装 barryvdh/laravel-cors 并在我的 api.php 文件中添加标题
我的 cors.php 文件是这样的
'supportsCredentials' => false,
'allowedOrigins' => ['*'],
'allowedOriginsPatterns' => [],
'allowedHeaders' => ['Content-Type', 'X-Requested-With',
'Origin','Authorization'],
'allowedMethods' => ['*'],
'exposedHeaders' => [],
'maxAge' => 0,
在调试器工具中我得到以下内容
GENERAL
Request URL:http://localhost:8000/api/entriesoff
Request Method:OPTIONS
Status Code:200 OK
Remote Address:127.0.0.1:8000
Referrer Policy:no-referrer-when-downgrade
Response Headers
Allow:GET, POST, HEAD, CONNECT, PUT, DELETE, OPTIONS, PROPFIND, MKCOL
DAV:1
Request Headers
Provisional headers are shown
Access-Control-Request-Headers:x-csrf-token,x-requested-with
Access-Control-Request-Method:GET
Origin:http://127.0.0.1:8000
Referer:http://127.0.0.1:8000/
【问题讨论】:
PROPFIND, MKCOL
是非标准的。是否有任何东西拦截了响应发送后可能会对其进行修改?
调试器工具正在显示对 preflight OPTIONS 请求的响应,但错误消息显示“on the requested resource”......所以你应该而是查看后续 GET 请求的响应。
不发送后续的get请求。
如果您使用php artisan serve
运行您的服务器,您可能需要重新启动它。尝试运行 php artisan config:clear
看看是否可以解决任何问题。
既然你没提,你还记得添加到你的中间件吗? app/http/Kernel.php
这个\Barryvdh\Cors\HandleCors::class
【参考方案1】:
我找到了解决方案。我在我的 axios URL 中添加了 index.php,例如 http://127.0.0.1:8000/index.php/api/...
【讨论】:
【参考方案2】:你会使用
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET, PUT, POST, DELETE, OPTIONS'); header('Access-Control-Allow-Headers: Content-Type, Authorization, X-Requested-With');
而不是 barryvdh/laravel-cors
在
public/index.php
上面
require __DIR__.'/../bootstrap/autoload.php';
样本:
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET, PUT, POST, DELETE, OPTIONS');
header('Access-Control-Allow-Headers: Content-Type, Authorization, X-Requested-With');
require __DIR__.'/../bootstrap/autoload.php';
【讨论】:
以上是关于请求的资源 laravel 5.8.8 上没有“Access-Control-Allow-Origin”标头的主要内容,如果未能解决你的问题,请参考以下文章
Laravel - 未找到 - 在此服务器上找不到请求的资源/控件
Laravel :: 在此服务器上找不到请求的资源 /hello