axios post server不接收来自浏览器的数据

我正在使用axios.post,但服务器似乎没有收到后期数据.

这就是我所拥有的:

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);
?>

可能会发生什么想法?

最佳答案 这是我的方式允许后端是PHP通过$_POST处理它.这是我在方法部分的vue中的代码的一部分.

假设你将它发布到post_url并且你有一个对象,var myObject:

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

在我的vue中,方法部分:

 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 post call之前)或使其成为一个全局函数.我创建了以下函数来使用axios将我想要发送的任何对象作为post发送,以便它将形成

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;
}

之后你可以在你的post_url上var_dump($_POST)检查一切是否正常.然后您可以照常处理数据.

希望它有所帮助

下面是一些图片,以帮助更好地理解

《axios post server不接收来自浏览器的数据》

《axios post server不接收来自浏览器的数据》

点赞