我尝试使用 fetch API 从输入发布多个文件,但附加后表单数据仍为空
我查看了答案 here , here , here , here和 here并尝试了所有方法均无效
我使用 Laravel 框架作为后端,这是我的 Blade View 文件
<meta name="csrf-token" content="{{ csrf_token() }}">
<input class="form-control" type="file" id="pro-image" name="image[]" multiple onchange="submit()">
<script>
function submit() {
var ins = document.getElementById('pro-image').files.length;
var fd = new FormData();
for (var x = 0; x < ins; x++) {
fd.append("pro-image[]", document.getElementById('pro-image').files[x]);
}
console.log(fd);
fetch('/', {
headers: {
"Content-Type": "application/json",
"Accept": "application/json",
"X-Requested-With": "XMLHttpRequest",
"X-CSRF-Token": document.querySelector('meta[name="csrf-token"]').content
},
method: 'POST',
credentials: "same-origin",
body: fd,
});
}
</script>
控制台记录一个空表单数据对象
这是后端的代码
Route::post('/', function () {
dd(request()->all());
});
因此我得到一个空数组
真的不知道为什么这不起作用!知道做错了什么吗?
最佳答案
删除 Content-Type: application/json
header ,或将其设置为 multipart/form-data
。
关于javascript - 如何使用 fetch API 发布多个文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58401449/