axios 请求数据,返回数据 data为空怎么办
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了axios 请求数据,返回数据 data为空怎么办相关的知识,希望对你有一定的参考价值。
参考技术A 传递数据格式的问题,axios 默认 application/json 而如果后端 需要application/x-www-form-urlencoded 可以通过 qs 或者 URLSearchParams 处理数据格式本回答被提问者采纳 参考技术B 回答您好,async用于申明一个函数是异步的,await等待异步请求完成,await只能在async方法中使用注:在用axios发请求时如果使用了async··…await,那么在调用发请求的函数时也需要加上标注 async异步请求和await同步
提问axios请求数据 接口提示日期不能为空 那么怎么可以获取数据时数据不为空
回答axios 使用 post 发送数据时,默认是直接把 json 放到请求体中提交到后端的。也就是说,我们的 Content-Type 变成了 application/json;charset=utf-8 ,这是axios默认的请求头content-type类型。但是实际我们后端要求的 ‘Content-Type’: ‘application/x-www-form-urlencoded’ 为多见,这就与我们不符合。所以很多同学会在这里犯错误,导致请求数据获取不到。明明自己的请求地址和参数都对了却得不到数据
提问连接axios接口怎么让列表数据跟着选择月份框值变化查询
回答在插页中做个公式,前表单元格减后表单元格
提问axios为什么发送请求的参数是空对象
回答修改content-type的类型
提问在哪里修改 怎么改
回答Content-Type需要设置charset字符编码,只有字符才需要设置。
react.js 使用 axios 发布数据到 php,但是 php echo 为空
【中文标题】react.js 使用 axios 发布数据到 php,但是 php echo 为空【英文标题】:react.js using axios to post data to php, but php echo empty 【发布时间】:2018-02-26 17:35:41 【问题描述】:我正在使用 react.js、axios 和 PHP 将数据发布到 MySQL 数据库
这是我的 react.js 代码
sendData()
var data = new FormData();
data.append('name', 'jessie');
data.append('time', '12:00');
data.append('food', 'milk');
data.append('nutrition', 'vitaminA');
axios.post(
'./sendData.php',
data: data
)
.then(response =>
console.log(response)
console.log(response.data)
this.filter = response.data
)
.catch(e =>
this.errors.push(e)
)
这是我的 PHP 代码
<?php
$servername = "127.0.0.1";
$username = "root";
$password = "";
$database = "mydb";
$conn = new mysqli($servername, $username, $password, $database);
if ($conn->connect_error)
die("Connection failed: " . $conn->connect_error);
echo "Connected successfully yayaya";
echo "the post after this";
echo json_encode($_POST);
?>
这是我的 Chrome 控制台
Connected successfully yayayathe post after this[]
我不知道为什么我的 PHP 得到空数据并回显空值。
【问题讨论】:
【参考方案1】:根据axios docs
默认情况下,axios 将 JavaScript 对象序列化为 JSON。
一个选项是read json from the body in your PHP code:
$entityBody = file_get_contents('php://input');
那你的数据就不用FormData
包装了,直接添加就行了:
axios.post(
'./sendData.php',
data:
name: 'jessie',
time: '12:00',
food: 'milk',
nutrition: 'vitaminA'
)
另一种选择是在 axios 中设置Content-type
标头:
axios.post(
'./sendData.php',
data: data
headers:
'Content-type': 'multipart/form-data'
)
选项 1 对我来说似乎更好
【讨论】:
我使用选项 1,但它也控制台连接成功 yayaya[]【参考方案2】:尝试从 phpinput 中获取 json,这对我来说是 halpfull:
echo file_get_contents('php://input');
echo json_decode(file_get_contents('php://input'), true);
【讨论】:
感谢您的回答,但我的 chrome 控制台我连接成功 yayaya"name":"jessie"注意: 中的数组到字符串转换/Applications/XAMPP/xamppfiles/htdocs/foodMaster/build/sendData.php 第 17 行 Array[] 并非所有数据都已回显 @ZakChen 好的,好的,现在尝试调试输入数据,并使用 json_decode 回显一些变体,而不是,您需要获取 json 字符串然后对其进行解码【参考方案3】:不要使用 hack,为您的项目编写正确的代码。
首先在你的项目中安装这个qs 节点包。然后你就可以使用这个函数stringify
你的数据,并将数据提交到服务器。
axios
已经在其文档文件中明确了该问题。您可以查看using-applicationx-www-form-urlencoded-format 链接了解更多信息。
在我的场景中使用简单的方法来解决这个问题,这里是我的代码:
var qs = require('qs');
var palyload =
'command': 'userLogin',
"email" : this.state.email,
"password" : this.state.password,
;
axios.post( apiBaseUrl, qs.stringify(palyload) ).then(
function(response)
console.log(response);
);
然后你的 PHP 服务器显示正确的全局数据,如下所示:
Array
(
[command] => userLogin
[email] => asdf@test.com
[password] => af12548@$
)
【讨论】:
以上是关于axios 请求数据,返回数据 data为空怎么办的主要内容,如果未能解决你的问题,请参考以下文章
用axios请求接口数据时,返回两层data数据,应该如何解决?