【问题标题】:CORS policy problem in sub domain with laravel 8 angular 11laravel 8 angular 11 子域中的 CORS 策略问题
【发布时间】:2021-10-11 19:46:58
【问题描述】:

我在 example.domain.com 中上传了我的 Laravel 项目,在另一个子域 subdomain.domain.com 中上传了 angular 项目,但在登录系统时遇到了 CORS 策略问题。

login.service.ts.

readonly baseURL = 'https://www.example.domain.com/api';

httpOptions = {
    headers: new HttpHeaders({
      'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '*'
    })
  }

login(data:any){
    return this.http.post(this.baseURL + '/auth/login/', data ,this.httpOptions);
  }

api.php

Route::group([
    'middleware' => 'api',
    'prefix' => 'auth'

], function ($router) {
    Route::post('/login', [AuthController::class, 'login']);
});

AuthController.php

public function login(Request $request){
        $validator = Validator::make($request->all(), [
            'email' => 'required|email',
            'password' => 'required|string|min:6',
        ]);
        // return response()->json($validator, 200);

        if ($validator->fails()) {
            return response()->json($validator->errors(), 422);
        }

        if (! $token = Auth::attempt($validator->validated())) {
            return response()->json(['error' => 'Either email or password is wrong.'], 401);
        }

        return $this->createNewToken($token);
    }
protected function createNewToken($token){
        return response()->json([
            'access_token' => $token,
            'token_type' => 'bearer',
            'expires_in' => auth()->factory()->getTTL() * 60,
            'user' => auth()->user()
        ]);
    }

【问题讨论】:

  • /api 需要添加到baseUrl。见:config/cros.php。 ` baseURL = 'example.domain.com/api/SOME';`
  • 我添加了,但还是不行。
  • 试试这个:制作新的中间件并遵循此代码return $next($request)->header('Access-Control-Allow-Origin', '*')->header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS')->header('Access-Control-Allow-Headers' , '*');

标签: php laravel cors angular11


【解决方案1】:

您可以使用 laravel cors vendor 来处理 cors 错误。

https://github.com/fruitcake/laravel-cors

【讨论】:

    猜你喜欢
    • 2019-12-24
    • 2023-03-13
    • 2021-02-14
    • 1970-01-01
    • 2019-02-05
    • 2020-06-06
    • 2020-11-23
    • 2016-01-10
    • 2017-05-25
    相关资源
    最近更新 更多