Недоступный маршрут API WordPress

#javascript #wordpress #rest #routes #wordpress-rest-api

#javascript #wordpress #отдых #маршруты #wordpress-rest-api

Вопрос:

При вызове метода Axios put() с моим пользовательским маршрутом WordPress я получаю эту ошибку в консоли:

ПОМЕСТИТЬ http://my-project.com/wp/wp-json/contact/v1/send 404 (Не найден)

Вот как я определяю свой пользовательский маршрут в WP functions.php :

 add_action('rest_api_init', function () {
  register_rest_route( 'contact/v1', 'send', array(
    'methods' => 'POST',
    'callback' => 'sendContactMail'
  ));
});
 

Вот вызов в моем приложении (Vue.js ):

 this.$axios.$put(`${this.baseUrl}/wp-json/contact/v1/send`, formData)
  .then((res) => {
    this.success = true
  })
  .catch((err) => {
    this.$toast.error(err.response)
  })
 

Что я делаю не так?

Комментарии:

1. Вы определили метод POST, но используете PUT

2. Спасибо 🙂 Если вы дадите ответ, я его приму

Ответ №1:

В methods разделе register_rest_route вызова разрешен только POST метод, но ваш код использует PUT .

Вы можете либо изменить вызов axios axios.post , либо добавить PUT метод в определение маршрута. Для этого измените methods , что может быть строкой HTTP-методов, разделенных запятыми, или массивом строк, таких как:

 'methods' => 'POST,PUT',
 

или

 'methods' => ['POST','PUT'],