簡體   English   中英

Laravel 生產,CORS 無“訪問控制允許來源” header

[英]Laravel Production, CORS No 'Access-Control-Allow-Origin' header

在 Heroku 上部署我的 Laravel API 應用程序后,Z1B13ED0A3F1DC5CD95FD1C00FC4 似乎存在問題。 這在開發中沒有問題,我仍然可以在 postman 上使用已部署的應用程序,但不能通過我的 Angular 應用程序上的常規 HTTP 請求。

在此處輸入圖像描述

我的 Cors.php 是沒有修改的

   'paths' => ['api/*', 'sanctum/csrf-cookie'],

    'allowed_methods' => ['*'],

    'allowed_origins' => ['*'],

    'allowed_origins_patterns' => ['*'],

    'allowed_headers' => ['*'],

    'exposed_headers' => [],

    'max_age' => 0,

    'supports_credentials' => true,

而我的 Kernel.php 使用 HandleCors class

 protected $middleware = [
        // \App\Http\Middleware\TrustHosts::class,
        \Fruitcake\Cors\HandleCors::class,
        \App\Http\Middleware\TrustProxies::class,
        \App\Http\Middleware\PreventRequestsDuringMaintenance::class,
        \Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
        \App\Http\Middleware\TrimStrings::class,
        \Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
    ];

不確定我的 angular 應用程序是否需要進一步更改,因為它正在處理 postman,調用看起來像這樣

  // User registration
  register(user: User): Observable<any> {
    return this.http.post('https://secure-fortress-48055.herokuapp.com/api/register', user);
  }

關於如何解決這個問題的任何想法?

你可以發布你的 .env 文件嗎? 我認為您需要修改 your.env 文件並更改以下代碼

APP_URL=http://localhost

APP_URL=https://secure-fortress-48055.herokuapp.com/

您還需要更改 Cors.php

    'exposed_headers' => [],

    'exposed_headers' => ['Access-Control-Allow-Origin'],

也許這會幫助你

我通過在 api.php 路由中添加標題來解決它

header('Access-Control-Allow-Origin:  *');
header('Access-Control-Allow-Methods:  POST, GET, OPTIONS, PUT, PATCH, DELETE');
header('Access-Control-Allow-Headers: Accept, Content-Type, X-Auth-Token, Origin, Authorization');

也許不是最優雅的解決方案,但它是一個。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM