Как сделать POST-запрос в Laravel? - PullRequest
0 голосов
/ 22 сентября 2019

Я создал API.Получить запрос работает.Я пытаюсь выполнить запрос POST.

В HomeController

<?php
class HomeController extends Controller
{
    public function __construct()
    {
        $this->middleware('auth');
    }

    public function store(Request $request)
    {
        $name = Auth::user()->name;
        $ip = Request::ip();

        $user = User::create([
            'name' => $request->input('name'),
            'ip' => $request->input('ip')
        ]);
        return $user;
    }

    public function index()
    {
        return view('home');
    }
}

Мои маршруты

Route::get('/home', 'HomeController@index')->name('home');
Route::post('/api/person', 'HomeController@store');

Я пытаюсь отправить сообщение через POSTMAN.

Получено "сообщение":

"Несоответствие токена CSRF.", "Исключение": "Symfony \ Component \ HttpKernel \ Exception \ HttpException" ...

Откуда исходит ошибка?

1 Ответ

0 голосов
/ 22 сентября 2019

Исключить маршрут из защиты CSRF в app/Http/Middleware/VerifyCsrfToken.php

<?php

namespace App\Http\Middleware;

use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as Middleware;

class VerifyCsrfToken extends Middleware
{
    protected $addHttpCookie = true;

    /**
     * The URIs that should be excluded from CSRF verification.
     *
     * @var array
     */
    protected $except = [
        '/api/person'
    ];
}

Это идеально для тестирования с использованием POSTMAN, но вы должны опубликовать действительный X-CSRF-TOKEN при выполнении вызовов API из Javascript

А у тебя в контроллере есть несколько проблем

<?php

class HomeController extends Controller
{
    public function __construct()
    {
        // REMOVE THIS
        // $this->middleware('auth');
    }

    public function store(Request $request)
    {
        // UNUSED VARIABLES, REMOVE THEM
        // $name = Auth::user()->name;
        // $ip = Request::ip();

        $user = User::create([
            'name' => $request->input('name'),
            'ip' => $request->input('ip')
        ]);
        return $user;
    }

    public function index()
    {
        return view('home');
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...