Yêu cầu thg 12 14, 2018 2:14 SA 604 0 1
  • 604 0 1
0

lỗi CORS giữa laravel + angular

Chia sẻ
  • 604 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
thg 12 14, 2018 2:21 SA

1 CÂU TRẢ LỜI


Đã trả lời thg 12 14, 2018 2:28 SA
+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
thg 12 14, 2018 2:42 SA

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
thg 12 14, 2018 6:57 SA

@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
thg 12 14, 2018 7:07 SA

@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
thg 12 14, 2018 7:21 SA

@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í