我正在使用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);
?>
有什么想法可能会发生什么?
答案 0 :(得分:1)
这是我允许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转换我想要发送的任何对象,以便它将形成
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)来检查一切是否正常。然后你可以照常处理数据。
希望它有所帮助
下面是一些有助于更好地理解的图片
答案 1 :(得分:0)
这似乎是一个网络问题。 仔细检查JQuery&amp;上的URL和端口localhost:8888 / dbRouting.php。 Axios演示 它们完全一样吗? 你的.catch是在axios上发射的吗?错误是什么? 你的服务器是否响应localhost:8888?
或者,您可以使用其他客户端(例如Postman https://chrome.google.com/webstore/detail/postman/fhbjgbiflinjbdggehcddcbncdddomop?hl=en)
检查您的服务器实施情况