Yêu cầu Dec 14th, 2018 2:14 a.m. 641 0 1
  • 641 0 1
0

lỗi CORS giữa laravel + angular

Chia sẻ
  • 641 0 1

Pj web của mình đang làm trên nền tảng angular 6 và laravel 5 khi mình post dữ liệu thì bị lỗi cors như bên dưới Client request Server response mình đã cấu hình laravel để cho phép cors như bên dưới nhưng vẫn không được bạn nào biết thì giúp mình với, loay hoay cả tuần chưa fix xong được

Avatar Son Dao Thai @dao.thai.son
Dec 14th, 2018 2:21 a.m.

1 CÂU TRẢ LỜI


Đã trả lời Dec 14th, 2018 2:28 a.m.
+2

Thay vì config trong file .htaccess thì bạn thử dùng middleware cho endpoint

<?php namespace App\Http\Middleware;

use Closure;

class CORS {

    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {

        header("Access-Control-Allow-Origin: *");

        // ALLOW OPTIONS METHOD
        $headers = [
            'Access-Control-Allow-Methods'=> 'POST, GET, OPTIONS, PUT, DELETE',
            'Access-Control-Allow-Headers'=> 'Content-Type, X-Auth-Token, Origin'
        ];
        if($request->getMethod() == "OPTIONS") {
            // The client-side application can set only headers allowed in Access-Control-Allow-Headers
            return Response::make('OK', 200, $headers);
        }

        $response = $next($request);
        foreach($headers as $key => $value)
            $response->header($key, $value);
        return $response;
    }

}
Chia sẻ
Avatar Phong @buitranphong
Dec 14th, 2018 2:42 a.m.

Mình đã thêm middleware của bạn, nhưng lần này lại ra lỗi khác 2018-12-14_093842.jpg

đây là cấu hình middleware của mình 2018-12-14_094016.jpg

Avatar Son Dao Thai @dao.thai.son
Dec 14th, 2018 6:57 a.m.

@buitranphong Mình tìm hiểu thì có thể vấn đề bị gặp phải do lỗi từ phía client chứ không phải do backend ? 😏 Giờ bạn thử dùng thêm extension này vào trong Chrome rồi test lại xem.

Avatar Phong @buitranphong
Dec 14th, 2018 7:07 a.m.

@dao.thai.son mình có dùng qua extension này rồi, nhưng mình muốn người dùng truy cập mà không cần phải cài bất cứ extension nào cả như vậy thì không thân thiện cho lắm 😐

Avatar Son Dao Thai @dao.thai.son
Dec 14th, 2018 7:21 a.m.

@buitranphong Bạn thử cả việc thêm cả Access-Control-Allow-Origin: * vào trong Apache/Nginx đi

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí