با ما تماس بگیرید

031-9101-5054
09356732798
09135140225-03191015054
info@freetem.ir

حل مشکل CORS در لاراول

PHP Frameworks: Is Laravel a Good Choice?

 

اگر در لاراول برای frontend مثل فریم ورک‌های Vue و React و… API می‌نویسید احتمالا به مشکل CORS مرورگر برخورده اید. می‌خواهیم در این نوشته این مشکل را برای همیشه حل کنیم. در اینجا دو راه حل برای حل این مشکل ارائه می‌دهیم. راه حل اول نوشتن یک middleware است و راه حل دوم حل مشکل با استفاده از یک پیکج است.

فیلم آموزشی زیر نیز می تواند به شما برای حل این مشکل کمک کند

 

راه حل اول

یک middleware بسازید. برای این کارکافی است دستور زیر را اجرا کنید.

 


php artisan make:middleware EnableCors

 

فایل ایجاد شده را باز کنید و این کد را در آن قرار دهید.

/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
$headers = [
‘Access-Control-Allow-Origin’ =>’ *’,
‘Access-Control-Allow-Methods’=>’ POST, GET, OPTIONS, PUT, DELETE’,
‘Access-Control-Allow-Headers’=>’ Content-Type, Accept, Authorization, X-Requested-With, Cache-Control’
];
if($request->getMethod() == “OPTIONS”) {
return \Response::make(‘OK’, 200, $headers);
}
$response = $next($request);
foreach ($headers as $key => $value) {
$response->header($key, $value);
}
return $response;
}

 

در انتها برای کار کردن این کد باید آن را در کرنل وارد کنید. به همین منظور فایل kernel.php را باز کنید و در بخش middleware ها کلاسی که ساخته اید را اضافه کنید. پس از افزودن این کلاس این قسمت به شکل زیر خواهد بود.


protected $middleware = [
\Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,
\Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
\App\Http\Middleware\TrimStrings::class,
\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
\App\Http\Middleware\TrustProxies::class,
\App\Http\Middleware\EnableCors::class,
];

 

 

راه حل دوم

راه حل دوم استفاده از پکیجی است که می‌توانید از این لینک سورس کد، مستندات و روش نصب این پکیج را ببینید.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

قبلا حساب کاربری ایجاد کرده اید؟
گذرواژه خود را فراموش کرده اید؟
Loading...