Как отправить форму через http-сообщение в vue js

вчера этот код работал, сегодня показывает:

Error in v-on handler: "TypeError: Cannot read property 'get' of undefined"

я смог отправить http get без аксиомов. вот мой код vue

<template>
  <div>

    <form id = "loginForm">
      <input type = "text" name = "name" v-model = "user.name" />
      <input type = "text" name = "email" v-model = "user.email" />
      <input type = "text" name = "message" v-model = "user.message" />
      <button @click = "save">send</button>
    </form>
  </div>
</template>

<script>


export default {
  name: "Contact",
  components: {
    
  },
  data() {
    return {
      user: {
        name: "peter",
        email: "[email protected]",
         message: "bla bla bla",
      },
    };
  },
  methods: {
    save: function () {
      let formData = new FormData(document.getElementById("loginForm"));
      this.$http
        .get("http://link.cursolinux.pt:8080/contacts", formData)
        .then((response) => {
          console.info(response.body);
        });
    },
  },
};
</script>

для моего запроса на получение я использую laravel 8

Route::get('/contacts', function (Request $request) {
   //get the request
   $post = $request->all();
   
   //show the get request 
   //return response()->json($post);
    
   //storage in database
    \App\Models\Contact::create($post);

});
this.$http не определен. Правильно ли вы настроили vue-ресурс?
blex 07.04.2021 00:33

спасибо, это было undefined, теперь у меня другие проблемы

Pedro Barata Fernandes 07.04.2021 00:41
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
2
33
2

Ответы 2

Вероятно, вы захотите отправить эти данные POST, а не использовать GET.

Если вам нужен GET, вам необходимо передать объект FormData в URLSearchParams () для преобразования в строку запроса.

const form = document.querySelector('#loginForm'),
  fData = new FormData(form),
  url = new URL(form.action);

url.search = new URLSearchParams(fData);

console.info(url)
<form id = "loginForm" action = "https://example.com">
  <input name = "name" value = "foo">
  <input name = "age" value = "28" />

</form>

сначала я устанавливаю vue-resource:

npm install vue-resource

затем импортируйте vue-ресурс в файл main.js

import Vue from 'vue'
import App from './App.vue'
import VueResource from 'vue-resource'

Vue.use(VueResource);

Vue.config.productionTip = false

new Vue({
  render: h => h(App),
}).$mount('#app')

вот мой метод:

  methods: {
    save: function () {
      this.$http
        .get(
          "http://www.url.domain/contacts?name = " +
            this.user.name +
            "&email = " +
            this.user.email
        )
        .then((response) => {
          console.info(response.body);
        });
    },
  },

Другие вопросы по теме