Laravel: не работает POST и GET запрос, требует Access-Control-Allow-Origin, как исправить?

В общем, я перерыл всё, что только можно, всё настроил, сделал, и всё равно требует заголовок, я уже не понимаю, что происходит, скриншоты прилагаю, где всё написано, помогите, чего ещё не хватает, почему не хочет работать?

Файл контроллер:
namespace App\Http\Controllers;

use Illuminate\Http\Request;

class restController extends Controller
{
    public function index()
    {
        echo "gg";
    }
}

Промежуточное ПО Cors.php:
namespace App\Http\Middleware;

class Cors
{
    public function handle($request, \Closure $next)
    {
        $response = $next( $request );
        $response->header('Access-Control-Allow-Origin', 'localhost');
        $response->header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS');
        $response->header('Access-Control-Allow-Headers', 'Origin, Content-Type');
        return $response;
    }
}

Js файл на стороне клиента (тестовый запрос в json)
window.onload = init;

function init() {
    var button = document.querySelector('#btn');
    button.addEventListener('click', async function (e) {
        e.preventDefault();
        //console.log(document.querySelector('meta[name="csrf-token"]').content);
        let url = 'http://127.0.0.1:8000/photoService/registration/create';
        let user = {
            name: 'John',
            surname: 'Smith'
        };

        let promise = await fetch(url, {
            method: 'GET',
            headers: {
                'Content-Type': 'application/json;charset=utf-8',
                'Accept': 'application/json',
            },
            //body: user
        });
        let result = await promise.json();
        console.log(result);
    });
}

Файл kernel.php
namespace App\Http;

use Illuminate\Foundation\Http\Kernel as HttpKernel;

class Kernel extends HttpKernel
{
    protected $middleware = [
        // ...
        \App\Http\Middleware\Cors::class,
    ];
}

Файл web.php (маршрут)
<?php
Route::get('photoService/registration/create', 'restController@index')->middleware('cors');


Полностью ошибка звучит так:
Access to fetch at '127.0.0.1:8000/photoService/registration/create' from origin 'restclient.ru' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.
  • Вопрос задан
  • 619 просмотров
Решения вопроса 1
Alex_Wells
@Alex_Wells
PHP/Kotlin
Ну посмотрите какие запросы отправляются... подозреваю, что отправляется OPTIONS, в ответ на который не приходит никакой заголовок.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы