Javascript PHP不执行Vue.JS中通过Axios调用的函数
我正在尝试编写一个Vue.JS模块来进行一些数据处理,并将变量发送到一个单独文件中的PHP函数。我使用Axios将参数解析为PHP。现在的问题是,Axios请求到达PHP文件,但PHP实际上并没有调用打算调用的函数 来自Vue应用程序的PHP调用:Javascript PHP不执行Vue.JS中通过Axios调用的函数,javascript,php,html,vue.js,axios,Javascript,Php,Html,Vue.js,Axios,我正在尝试编写一个Vue.JS模块来进行一些数据处理,并将变量发送到一个单独文件中的PHP函数。我使用Axios将参数解析为PHP。现在的问题是,Axios请求到达PHP文件,但PHP实际上并没有调用打算调用的函数 来自Vue应用程序的PHP调用: axios.post('./crmFunctions.php',{ params: { function2call:"sendQuery", id:1, mid:1, message: "Hello there!", event:"Query" }}
axios.post('./crmFunctions.php',{ params: { function2call:"sendQuery", id:1, mid:1, message: "Hello there!", event:"Query" }})
.then(response => this.responseData = response.data)
.catch(error => {});
PHP解释代码:
if(isset($_POST['function2call']) && !empty($_POST['function2call'])) {
if( !isset($_POST['arguments']) ) { $aResult['error'] = 'No function arguments!'; }{
$function2call = $_POST['function2call'];
switch($function2call) {
case 'sendQuery' : sendQuery($_POST['arguments'][0],$_POST['arguments'][1],$_POST['arguments'][2],$_POST['arguments'][3]);
break;
case 'other' : // do something;break;
// other cases
}
}
}
这个代码哪里出了问题?我以前曾在AJAX上调用过相同的函数。使用axios发送的数据不会放入PHP的
$\u POST
。
相反,它位于请求体中,很可能是json格式。
要获取它,请尝试以下代码:
函数getRequestDataBody()
{
$body=文件\u获取\u内容('php://input');
if(空($body)){
返回[];
}
//解析json正文并在发生错误时通知
$data=json_decode($body,true);
if(json\u last\u error()){
触发器错误(json\u last\u error\u msg());
返回[];
}
返回$data;
}
$data=getRequestDataBody();
变量转储($data)
我试过你的答案。但它仍然拒绝工作。我可以在网络的headers部分看到PHP接收的数据作为请求负载。对不起,我错了。我更新了我的答案以获得新的解决方案。你能试试吗?