javascript - Axios 在 post 请求中发送数组而不是 json 对象
问题描述
我正在尝试使用 axios 从 Vuejs 前端向后端的 Laravel 发送一个发布请求。
const data = {
file: {id}
}
axios.post('api/documents/remove', data).then((response) => {
console.log(response.data);
}
}).catch(err => { console.log(err.response.data); })
在 laravel 中,我正在打印这样的请求,
public function removeFile(Request $request)
{
dd($request);
}
这是我的输出。
Illuminate\Http\Request {#51
#json: Symfony\Component\HttpFoundation\ParameterBag {#43
#parameters: array:8 [
"file" => array:1 [
"id" => 61
]
}
解决方案
PHP 的“数组”并不是真正的数组,它们是有序映射。这就是您的输出显示的内容,请求包含参数,这是一个有序映射,而file
参数是一个有序映射id => 61
。在 JavaScript 中,这将是一个对象(或者Map
,有时);在许多其他语言中,它将是某种地图或字典。PHP 称它们为数组。
无论哪种方式,如果您访问file
参数(我不“做” Laravel,所以我不知道您是如何做到的),您可以id
像这样从中获取:$file[
id ]
。查看Laravel 文档,看起来会是:
$file = $request->input('file');
$id = $file['id'];
推荐阅读
- javascript - 转到特定的 URL ionic React JS
- php - 在 PHP 中验证用户输入的简单方法
- python - 以编程方式执行“from foo.bar import baz”
- python - 将两个不同的方程拟合到一个函数 (curve_fit)
- sql - SQL Where exists 使用值 else 使用另一个
- c# - 无法将记录插入数据库 C# SQLite
- c++ - OpenGL 2d 纹理类不工作,但相同的代码在主循环的类外工作?
- python - Julia 中的“colptr”和 Python 中的对应物是什么?
- python - Linux 安装 mpi4py 错误 - 退出状态 1
- c# - WPF,如何从另一个用户控件的 TextBox 元素中聚焦?