[英]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.