gpt4 book ai didi

javascript - 使用 Axios 将数据从 Vue.js 传递到 PHP

转载 作者:可可西里 更新时间:2023-11-01 00:28:39 26 4
gpt4 key购买 nike

我正在尝试使用 Axios 将一些数据从在 Vue.js 中完成的 GUI 传输到 PHP 文件。我尝试使用 GET 和 POST 参数,但它不起作用:

我在这个index.php form 中输入数据:

enter image description here

index.php:

<!DOCTYPE HTML>
<HTML>
<head>
<script src="https://unpkg.com/vue"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/axios/0.18.0/axios.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
</head>
<BODY>
<div id="container" class="container">
<div>
<label>First name:</label><br/>
<input type="text" v-model='newPerson.firstName'>
</div>
<div>
<label>Last name: </label><br/>
<input type="text" v-model="newPerson.lastName">
</div>
<button v-on:click="sendIdentity()">Submit</button>
</div>
<script src="myjscode.js"></script>
</BODY>
</HTML>

myjscode.js:

当我按下按钮提交数据时,我在 console.log(response.data) 中看到正确的输出:

let vm = new Vue({
el: "#container",
data: {
newPerson: {
firstName: '',
lastName: ''
}
},
methods: {
sendIdentity: function() {
let personForm = vm.toFormData(vm.newPerson);
axios.post('phpfile.php', personForm)
.then( function(response) {
console.log(response.data)
});
},
toFormData: function(obj) {
let formData = new FormData();
for(let key in obj) {
formData.append(key, obj[key]);
}
return formData;
}
}
});

php文件.php:

在这个文件上,我宁愿在 MySQL 表中执行插入,但它永远不会生效。我删除了 MySQL 代码,只保留以下内容,我注意到在运行此文件时我总是收到消息 Data not received:

<?php
if( isset($_POST['firstName']) && isset($_POST['lastName'])){
echo $_POST['firstName'];
echo $_POST['lastName'];
} else {
echo 'Data not received';
}
?>

我错过了什么?

更新:

我注意到当我像这样更改上面的 myjscode.js 时:

axios.post('phpfile.php?todo=something', ...)

然后我将 phpfile.php 更改为

<?php

if( isset($_GET['todo']) ){
echo $_GET['todo'];
} else {
echo 'No todo';
}
?>

No todo 总是显示在 PHP 文件中。因此,在这种情况下,通过 GET 和 POST 发送数据是行不通的。

最佳答案

默认情况下,axiosjson 格式发送 requestBody 并且使用 $_POST 你只能获取 表单数据.

要在 php 中获取此 json 请求,您需要通过键入以下内容获取原始 requestBody:file_get_contents('php://input')

也以 json 格式发送,没有 - vm.toFormData(vm.newPerson)

我已经在我的服务器上创建了 php 文件来测试。

js文件内容here

php文件内容here

关于javascript - 使用 Axios 将数据从 Vue.js 传递到 PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51828264/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com