【问题标题】:No 'Access-Control-Allow-Origin' header is present on the requested resource laravel 5.8.8请求的资源 laravel 5.8.8 上没有“Access-Control-Allow-Origin”标头
【发布时间】: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

标签: laravel vue.js cors axios phpdesktop


【解决方案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';
    

    【讨论】:

      猜你喜欢
      • 2020-08-24
      • 2017-02-07
      • 2023-03-16
      • 2014-07-30
      • 2016-01-14
      • 2023-03-15
      • 2018-12-02
      • 2019-09-27
      • 2015-10-30
      相关资源
      最近更新 更多