2017-02-18 34 views
3

Я использую axios.post, но сервер, похоже, не получает пост-данные.Сервер сообщений axios не получает данные от браузера

Это то, что у меня есть:

var baseURL = "http://localhost:8888/dbRouting.php"; 
var body = { 
    function: 'foo', 
    id: 'bar', 
} 

axios.post(baseURL, body) 
.then((response) => { console.log("Data Loaded AXIOS: " + response.data); }) 
.catch(function (error) {console.log(error);}); 

// Data Loaded AXIOS: array(0) { 
// } 

Это сообщение JQuery в тот же файл, с другой стороны, работает:

$.post(baseURL, body) 
    .done(function(data) { 
    console.log("Data Loaded JQUERY: " + data); 
    }); 

//Data Loaded JQUERY: array(2) { 
//["function"]=> 
//string(3) "foo" 
//["id"]=> 
//string(3) "bar" 
//} 

Сервер файлов (dbRouting.php) просто:

<?php 
var_dump($_POST); 
?> 

Любые идеи, что может быть?

ответ

0

Кажется, проблема с сетью. Дважды проверьте URL-адрес и порт localhost: 8888/dbRouting.php на JQuery & Axios demo Являются ли они абсолютно такими же? Является ли ваш .catch уволенным в аксиомах? Какая ошибка? Ваш сервер отвечает на localhost: 8888?

В качестве альтернативы, вы можете проверить реализацию сервера с помощью другого клиента (например, Почтальон https://chrome.google.com/webstore/detail/postman/fhbjgbiflinjbdggehcddcbncdddomop?hl=en)

+1

URL и порт перепроверили. Доступ к файлу php осуществляется в обоих случаях. axios работает нормально (ошибки не выбрасываются), а 'then' запускается. Это просто, что php-файл не получает никаких данных из postios вызова axios. Все остальное работает на цыпочках. – gondolfier

+0

У меня такая же проблема –

1

Это мой способ позволяет фоновым, который PHP обработать его с помощью $ _POST. Это часть моего кода в разделе vue внутри метода.

Предполагая, что вы разместить его в POST_URL и у вас есть объект, уаг MyObject:

var myObject = { 
    property: value, 
    property1: value1, 
    property2: value2 
} 

Внутри моей вю, метод раздел:

updateForm: function(myObject){ 
      var post_url = (your post url); 

      axios.post(post_url, makePostReady(myObject)) 
      .then(function (response) { 
       console.log(response); 
      }) 
      .catch(function (error) { 
       console.log(error); 
      }); 
     } 

Тогда выше (до Вардар после вызова) или сделать его глобальной функцией. Я создал ниже функции, чтобы превратить любой объект, я хочу отправить в должность с помощью AXIOS так, что он образует

property=value&poperty1=value1&property2=value2...... 

Ниже функция:

function makePostReady(object) 
{ 
    var sentence = ""; 
    for (var key in object) { 
     sentenceAdd = key + '=' + object[key] + '&'; 
     sentence = sentence + sentenceAdd; 
    } 
    //console.log('sentence: ' + sentence); 
    return sentence; 
} 

После этого вы можете var_dump ($ _POST) в ваш post_url, чтобы проверить, все ли в порядке. Затем вы можете обрабатывать данные как обычно.

Надеется, что это помогает

Ниже некоторые картины, чтобы помочь лучше понимать

enter image description here

enter image description here