Запрос на публикацию с данными приводит к: Ответ на предпечатный запрос не проходит проверку контроля доступа: Нет заголовка «Access-Control-Allow-Origin» - PullRequest
0 голосов
/ 27 марта 2019

Кажется, когда я делаю 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');
    }

Вот результат этого пост-запроса в моей консоли браузера: post request

Маршруты регистрируются так:

Route::group(['middleware' => 'cors'], function () {
    Route::post('/api/feedback/send', 'FeedbackController@send');
});

Почему с объектом данных я получаю это сообщение об ошибке?

...