Что у меня есть :
1) Два приложения: клиент (Vue точно) на https://domain.local
и API (Laravel 5.7) на https://api.domain.local
.
2) axios
для вызовов API на клиенте:
axios.post( //url, { //data })
3) Сторона API:
//routes/api.php
Route::resource('users', 'UserController');
//app/Http/Kernel.php
'api' => [
'throttle:60,1',
'bindings',
HandleCors::class, //<--https://github.com/barryvdh/laravel-cors
],
//config/cors.php
'supportsCredentials' => true,
'allowedOrigins' => ['*'],
'allowedHeaders' => ['*'],
'allowedMethods' => ['*'],
'exposedHeaders' => [],
'maxAge' => 0,
//UserController@store - method I'm testing
public function store(Request $request)
{
dd($request);
}
Моя проблема :
dd($request)
возвращает text/html
MIME ответ.И мой POST-запрос от клиента терпит неудачу.
Есть два запроса от клиента: «OPTIONS» и «POST».Оба с 200 ответом между прочим.Заголовки ответа «OPTIONS»:
HTTP/1.0 200 OK
Cache-Control: no-cache, private
Access-Control-Allow-Credentials: true
Access-Control-Allow-Origin: https://domain.local:8080
Access-Control-Allow-Methods: POST
Access-Control-Allow-Headers: CONTENT-TYPE
Заголовки запроса «OPTIONS»:
Accept: */*
Access-Control-Request-Headers: content-type
Access-Control-Request-Method: POST
Заголовки ответа «POST»:
Content-Type: text/html; charset=UTF-8
Заголовки запроса «POST»:
Accept: application/json, text/plain, */*
Content-Type: application/json;charset=UTF-8
Ошибка браузера:
Блокировка перекрестного чтения (CORB) заблокировала ответ перекрестного источника https://api.domain.local/users с текстом MIME типа / html.См. https://www.chromestatus.com/feature/5629709824032768 для получения дополнительной информации.
Когда я удаляю dd(...)
и возвращаю соответствующий ответ, все в порядке, но я хочу получить это dd(...)
на данный момент.
То, что я попробовал (пока ничего не помогло):
1) отправить withCredentials
флаг
axios.post(//url, {
withCredentials: true,
//data
})
2) отправить XMLHttpRequest
заголовок
axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest'
3) изменение cors
config:
'allowedHeaders' => ['Access-Control-Allow-Origin'],
или
'allowedOrigins' => ['https://domain.local:8080'],
вызвано ответом "Заголовок не разрешен" 403.
PS Любой запрос работает нормально при использовании Insomnia или Postman.