Ketika saya sedang mengerjakan proyek laravel 9 saya dan saya membuat API backend, saya berhasil membuat tetapi ketika pengembang front-end memanggil API yang saya buat. Ini kembali seperti: "PCross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://learnl52.hd/register. (Reason: CORS header 'Access-Control-Allow-Origin' missing)." dan saya memang mencoba bagaimana menyelesaikan masalah ini. Saya juga mencoba dengan jquery dan angularjs dari backend tetapi selalu tidak menghasilkan apa-apa.
Akhirnya saya menemukan cara mengatasi masalah ini, saya membuat satu middleware yang memungkinkan Permintaan Lintas Asal di aplikasi laravel Anda. jadi mari kita buat middleware baru:
Create Middleware
php artisan make:middleware CORS
Sekarang Anda dapat memeriksa direktori Middleware (app/Http/Middleware ), Anda dapat menemukan file CORS.php dan meletakkan kode di bawah ini pada file itu.
app/Http/Middleware/CORS.php
namespace App\Http\Middleware;
use Closure;
class CORS
{
public function handle($request, Closure $next)
{
header('Access-Control-Allow-Origin: *');
$headers = [
'Access-Control-Allow-Methods'=> 'POST, GET, OPTIONS, PUT, DELETE',
'Access-Control-Allow-Headers'=> 'Content-Type, X-Auth-Token, Origin'
];
if($request->getMethod() == "OPTIONS") {
return Response::make('OK', 200, $headers);
}
$response = $next($request);
foreach($headers as $key => $value)
$response->header($key, $value);
return $response;
}
}
Ok, sekarang daftarkan middleware baru yang dibuat pada file Kernel.php(app/Http/Kernel.php ) dan tambahkan baris berikut.
app/Http/Kernel.php
namespace App\Http;
use Illuminate\Foundation\Http\Kernel as HttpKernel;
class Kernel extends HttpKernel
{
...
...
protected $routeMiddleware = [
...
'cors' => \App\Http\Middleware\CORS::class,
];
}
Sekarang kita siap untuk menggunakan middleware 'cors' pada file rute jadi, gunakan cara berikut:
app/Http/routes.php
Route::group(['middleware' => ['api','cors'],'prefix' => 'api'], function () {
Route::post('register', 'APIController@register');
Route::post('login', 'APIController@login');
});
laravel 9
laravel
laravel cors origin
laravel tutorial