Я сделал много исследований, и я реализовал следующие промежуточное программное обеспечение, чтобы обойти ошибки CORS я получаю ...Laravel API CORS режим не работает
Middleware/Cors.php
<?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)
{
return $next($request)
->header('Access-Control-Allow-Origin', '*')
->header('Access-Control-Allow-Methods', 'GET,POST,PUT,PATCH,DELETE,OPTIONS')
->header('Access-Control-Allow-Headers', 'content-type');
}
}
?>
Kernel .php
protected $routeMiddleware = [
'auth' => \App\Http\Middleware\Authenticate::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
'cors' => App\Http\Middleware\Cors,
];
routes.php
Route::post('/content', array('middleware' => 'cors', 'uses' => '[email protected]'));
Кажется, что он настроен правильно. Но когда я делаю запрос с использованием выборки API ...
fetch('http://laravel.dev/content', {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
'Access-Control-Allow-Origin':'*'
},
body: JSON.stringify({
})
})
//.then((response) => response.json())
.then((response) => response.text())
.then((text) => {
console.log(text);
});
Я все еще получаю эту ошибку ...
Fetch API cannot load http://laravel.dev/content.
Response to preflight request doesn't pass access
control check: No 'Access-Control-Allow-Origin' header
is present on the requested resource.
Я пытался добавить режим no-cors
моей выборки ответа, и он работал, я получил непрозрачный ответ, но мне нужен режим cors, чтобы получить правильный запрос.
Может быть, стоит отметить, что мой App
и мой Laravel restAPI
расположены в одной и той же папке htdocs
на XAMPP
. Я не уверен, что это проблема.
Я также попытался добавить заголовки в верхней части моего файла Routers.php, но я все равно получаю ту же ошибку. Можно ли настроить restAPI с помощью laravel?
Для CORS вы можете попробовать это GitHub [ репо (https://github.com/barryvdh/laravel-cors)]. Он очень прост в использовании и работает в моих проектах. –
Этот заголовок не должен существовать в заголовках запроса: Access-Control-Allow-Origin – schellingerht
Согласитесь с вышесказанным. Также для меня это должно было быть частью глобальной группы промежуточного программного обеспечения – tam5