Emm*_*dez 5 php api ajax laravel
我有一个非常简单的用于测试目的的表单,当我尝试使用 $.ajax 放置 formData 时,我得到一个空数组响应,但只有当我使用 PUT 方法时才会发生这种情况,如果我使用 POST 而不是 PUT 方法按预期工作。
我使用 Laravel 6,每个函数都有一个 var_dump:
var_dump($request->all())
Run Code Online (Sandbox Code Playgroud)
当我使用 PUT 方法时,我得到:
array(0) {}
Run Code Online (Sandbox Code Playgroud)
当我使用 POST 方法时,我得到:
array(4) { ["form1"]=> string(1) "1" ["form2"]=> string(1) "2" ["form3"]=> string(1) "3" ["form4"]=> string(1) "4" }
Run Code Online (Sandbox Code Playgroud)
我需要 formData 因为我要 PUT 图像文件。我正在寻找另一个类似的问题,但没有人解决我的问题。
还有另一种方法可以执行此操作吗?
array(0) {}
Run Code Online (Sandbox Code Playgroud)
尝试在表单中添加这两个输入字段。
<input type="hidden" name="_method" value="PUT">
<input type="hidden" name="_token" value="{{ csrf_token() }}">
Run Code Online (Sandbox Code Playgroud)
第一个是将表单提交方法更改为“PUT”,第二个是将 CSRF 令牌包含到表单中。
然后在您的 AJAX 代码中,将type: 'PUT'更改为type: 'POST'。
$.ajax({
url: '<?echo($config->get('apiUrl'))?>movies/13',
type: 'POST',
processData: false,
contentType: false,
data: formData,
success: function(result) {},
error: function(data) {
console.log(data);
}
});
Run Code Online (Sandbox Code Playgroud)