Как отправить и получить данные в vue-resource?

250
28 февраля 2018, 10:51

Собственно для отправки делаю так:

new Vue({ 
  el: '#id', 
  data: { 
    endpoint: 'send.php' 
  }, 
  methods: { 
    send: function() { 
      var options = { 
        params: { 
          'get': 'test' 
        } 
      } 
 
      this.$http.post(this.endpoint, options).then(function(responce) { 
        alert(responce.data); 
      }, function(error) { 
        alert('error'); 
      }) 
    } 
  } 
})

А в файле php следующий код:

echo ($_POST['get'] == null)? 'false': $_POST['get'];

При отправке вылетает alert с текстом false, т.е. инфа то дошла, но дошла-то пустота. Что тут может быть не так?

Answer 1

Метод post имеет следующий список аргументов:

post(url, [body], [options])

По умолчанию, если вы передаете в body объект, то vue-resource отправит на сервер запрос с типом application/json и в тело запроса вложит JSON, на сервере такой запрос придется обрабатывать иначе, нежели у вас.

В вашем случае можете использовать FormData вот так:

var data = new FormData;
data.set('get', 'test');
this.$http.post(this.endpoint, data).then(function(responce) {
        alert(responce.data);
    }, function(error) {
        alert('error');
    });

Тогда vue-resource отправляет данные как multipart/form-data, и на сервере вы сможете обработать их как $_POST['get'].

READ ALSO
PhantomJS много post запросов

PhantomJS много post запросов

Здравствуйте! Нужна помощь при работе с phantomjsЕсть функция:

269
preloader с процентной полосой загрузки

preloader с процентной полосой загрузки

Необходимо реализовать preloader, который бы исчезал через указанное время но при условии, что страница полностью загрузилась, иначе игнорировать...

297
Сравнение head и добавление недостающего

Сравнение head и добавление недостающего

При загрузки странички аяксом

208
Активация/деактивация кнопки

Активация/деактивация кнопки

Не работает активация/деактивация кнопки на форме при клике на чекбоксПроверил в на разных браузерах десктопных и в хроме мобильном все...

271