Кажется, когда я делаю POST-запрос с данными, я получаю следующее сообщение об ошибке в консоли:
Доступ к XMLHttpRequest по адресу http://localhost:8000/api/feedback/send/'
из источника 'http://localhost:3000' заблокирован политикой CORS:
Ответ на предполетный запрос не проходит проверку контроля доступа: Нет
Заголовок «Access-Control-Allow-Origin» присутствует в запрошенном
ресурс.
Так что, когда я делаю такой запрос, он работает нормально:
request({
method: 'post',
url: `${process.env.APIURL}tags/`,
})
Но когда я делаю следующий запрос, он завершается с этим сообщением об ошибке:
request({
method: 'post',
url: `${process.env.APIURL}feedback/send/`,
data: {
feedback: this.state.feedback,
email: this.state.email,
}
})
мое приложение next.js на localhost: 3000 выполняет запрос к моему API laravel на localhost: 8000.
В моем приложении laravel в качестве промежуточного ПО установлена следующая конфигурация cors:
public function handle($request, Closure $next) {
if ($request->getMethod() == "OPTIONS") {
return response(['OK'], 200, [
'Access-Control-Allow-Origin' => 'http://localhost:3000',
'Access-Control-Allow-Methods' => 'GET, POST, PUT, DELETE, OPTIONS, PATCH',
'Access-Control-Allow-Credentials' => 'true',
'Access-Control-Allow-Headers' => 'Origin, X-Requested-With, Content-Type, X-Auth-Token, Authorization',
]);
}
return $next($request)
->header('Access-Control-Allow-Origin', 'http://localhost:3000')
->header('Access-Control-Allow-Credentials', 'true')
->header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS, PATCH')
->header('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, X-Auth-Token, Authorization');
}
Вот результат этого пост-запроса в моей консоли браузера:
Маршруты регистрируются так:
Route::group(['middleware' => 'cors'], function () {
Route::post('/api/feedback/send', 'FeedbackController@send');
});
Почему с объектом данных я получаю это сообщение об ошибке?