Метод POST не поддерживается для этого маршрута. Поддерживаемые методы: GET, HEAD.",…


Метод POST не поддерживается для этого маршрута. Поддерживаемые методы: GET, HEAD.",…

07.04.2019 07:14:19 Просмотров 41 Источник

У меня возникли проблемы при использовании контроллера laravel resourceApi вместе с vue js, который я создаю и приложение, где я использую vue и laravel, я публикую значение для хранения метода моего контроллера, но он говорит, что метод не разрешен или исключение 405 в ответе. мне нужна помощь, я новичок в laravel и vue.

Вот мой код

**UserController :** 

public function store(Request $request)
    {
        return ['message' => 'i have your data'];
    }

**Route:**
Route::apiResources(['user' => 'API\UserController']);

**Vue Code:**

<form @submit.prevent="createUser">
            <div class="modal-body">
              <div class="form-group">
                <input
                  v-model="form.name"
                  placeholder="Enter name"
                  type="text"
                  name="username"
                  class="form-control"
                  :class="{ 'is-invalid': form.errors.has('name') }"
                >
                <has-error :form="form" field="name"></has-error>
              </div>

              <div class="form-group">
                <input
                  v-model="form.email"
                  placeholder="Enter email"
                  type="email"
                  name="username"
                  class="form-control"
                  :class="{ 'is-invalid': form.errors.has('email') }"
                >
                <has-error :form="form" field="email"></has-error>
              </div>

              <div class="form-group">
                <textarea
                  v-model="form.bio"
                  placeholder="Enter bio"
                  type="email"
                  name="username"
                  class="form-control"
                  :class="{ 'is-invalid': form.errors.has('bio') }"
                />
                <has-error :form="form" field="bio"></has-error>
              </div>

              <div class="form-group">
                <select
                  v-model="form.type"
                  placeholder="Enter bio"
                  name="type"
                  class="form-control"
                  :class="{ 'is-invalid': form.errors.has('type') }"
                >
                  <option value>---Select User Role---</option>
                  <option value="admin">Admin</option>
                  <option value="user">Standard User</option>
                  <option value="author">Author</option>
                </select>
                <has-error :form="form" field="bio"></has-error>
              </div>

              <div class="form-group">
                <input
                  v-model="form.password"
                  placeholder="Enter email"
                  type="password"
                  name="password"
                  class="form-control"
                  :class="{ 'is-invalid': form.errors.has('password') }"
                >
                <has-error :form="form" field="password"></has-error>
              </div>
            </div>
            <div class="modal-footer">
              <button type="button" class="btn btn-danger" data-dismiss="modal">Close</button>
              <button type="submit" class="btn btn-primary">Create</button>
            </div>
          </form>

**Vue method :**

  createUser() {
      this.form.post("api/user");
    }

ошибка: enter image description here

У вопроса есть решение - Посмотреть?

Ответы - Метод POST не поддерживается для этого маршрута. Поддерживаемые методы: GET, HEAD.",… / The POST method is not supported for this route. Supported methods: GET, HEAD.",…

Sohel

07.04.2019 08:26:34

API Resource Routes не поддерживает функцию create and Edit, я имею в виду метод POST или PUT. способ apiResource автоматически исключает этих двух маршрутов(создание и редактирование).Если вы хотите сохранить или обновить что-то, вы можете указать другой маршрут с соответствующей функцией или использовать маршруты ресурсов, а не маршрут ресурсов API, например,

Route::resource(['user' => 'API\UserController']);

пожалуйста, ознакомьтесь с документацией https://laravel.com/docs/5.8/controllers#restful-partial-resource-routes

Manishbasnyat182

07.04.2019 09:27:25

Может быть, есть ошибка в вашем почтовом маршруте в аксиосе. Было бы полезно, если бы вы показали свой метод createUser (). Но я предполагаю, что вы должны сделать что-то как таковое, чтобы ваш код работал.

    createUser()
   {
     axios.post('/api/user/store',{

     //your fields and all

       })
    }
Saurav

07.04.2019 09:46:13

Я попробовал запустить ваш код в своей программе, и весь код, который вы упомянули выше, кажется прекрасным. Поскольку вы не предоставили код метода createUser, я думаю, что вы, возможно, допустили ошибку при вызове api.

Пожалуйста, попробуйте использовать приведенный ниже код один раз в вашем почтовом маршруте axios.

methods:{
 createUser(){
              axios.post('/api/user/store', {
                   //keep your field here//
         }).then(res => {
                 console.log(res)
                }
             }
    }
leandro david torrez salinas

15.10.2020 03:30:05

Аксиос есть путь по умолчанию, так что если сделать запрос "/пользователь" путь будет "http://localhost/client" но если вы делаете звонок с другого пути "http://localhost/invoice" и сделать запрос "пользователей" так Аксиос будет брать тока в путь, а выбор пути "http://localhost/invoice/invoice/user" по этой причине вы должны использовать "/пользователь".

вы можете проверить документацию: https://github.com/axios/axios#request-method-aliases

createUser(){
  axios.post('/api/user',{ 
    /* parameter */
  })
}  
Помочь в развитии проекта:
Закрыть X