【发布时间】:2020-02-15 21:31:03
【问题描述】:
我有一个非常简单的表单用于测试目的,当我尝试使用 $.ajax 放置 formData 时,我得到一个空数组响应,但这仅在我使用 PUT 方法时发生,如果我使用 POST 而不是 PUT 方法作为预计。
我使用的是 Laravel 6,每个函数都有一个 var_dump:
var_dump($request->all())
当我使用 PUT 方法时,我得到:
array(0) {}
当我使用 POST 方法时,我得到:
array(4) { ["form1"]=> string(1) "1" ["form2"]=> string(1) "2" ["form3"]=> string(1) "3" ["form4"]=> string(1) "4" }
我需要 formData,因为我要 PUT 图像文件。我一直在寻找另一个类似的问题,但没有人解决我的问题。
还有其他方法可以执行此操作吗?
<form id="formTest" type="multipart/form-data">
<input name="form1" value="1">
<input name="form2" value="2">
<input name="form3" value="3">
<input name="form4" value="4">
<button type="submit">Accept</button>
</form>
<script>
$(document).ready(function () {
$('#formTest').on('submit', function (e) {
e.preventDefault();
var formData = new FormData($(this)[0]);
$.ajax({
url: '<?echo($config->get('apiUrl'))?>movies/13',
type: 'PUT',
processData: false,
contentType: false,
data: formData,
success: function(result)
{
},
error: function(data)
{
console.log(data);
}
});
});
});
</script>
【问题讨论】:
-
你在路由文件中使用 Route::put() 吗?
-
@MatMorici 是的,对于我正在使用的 PUT:Route::put('movies/{id}','MoviesController@update');对于 POST:Route::post('movies','MoviesController@add');