Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用PUT方法AJAX会导致空$request->;Laravel 6中的all()数组_Php_Ajax_Laravel_Api - Fatal编程技术网

Php 使用PUT方法AJAX会导致空$request->;Laravel 6中的all()数组

Php 使用PUT方法AJAX会导致空$request->;Laravel 6中的all()数组,php,ajax,laravel,api,Php,Ajax,Laravel,Api,出于测试目的,我有一个非常简单的表单,当我尝试使用$.ajax放置formData时,我会得到一个空的数组响应,但是只有当我使用PUT方法时,如果我使用POST而不是PUT方法,那么这种情况才会发生 我使用的是Laravel 6,每个函数中都有一个var_转储: var\u dump($request->all()) 当我使用PUT方法时,我得到: array(0) {} array(4) { ["form1"]=> string(1) "1" ["form2"]=> strin

出于测试目的,我有一个非常简单的表单,当我尝试使用$.ajax放置formData时,我会得到一个空的数组响应,但是只有当我使用PUT方法时,如果我使用POST而不是PUT方法,那么这种情况才会发生

我使用的是Laravel 6,每个函数中都有一个var_转储:

var\u dump($request->all())
当我使用PUT方法时,我得到:

array(0) {}
array(4) { ["form1"]=> string(1) "1" ["form2"]=> string(1) "2" ["form3"]=> string(1) "3" ["form4"]=> string(1) "4" } 
当我使用POST方法时,我得到:

array(0) {}
array(4) { ["form1"]=> string(1) "1" ["form2"]=> string(1) "2" ["form3"]=> string(1) "3" ["form4"]=> string(1) "4" } 
我需要formData,因为我要放置图像文件。我在寻找另一个类似的问题,但没有人解决我的问题

还有其他方法可以执行此操作吗


接受
$(文档).ready(函数(){
$('#formTest')。关于('submit',函数(e){
e、 预防默认值();
var formData=新formData($(此)[0]);
$.ajax({
url:‘电影/13’,
键入:“PUT”,
processData:false,
contentType:false,
数据:formData,
成功:功能(结果)
{
},
错误:函数(数据)
{
控制台日志(数据);
}
});
});
});

尝试在表单中添加这两个输入字段

<input type="hidden" name="_method" value="PUT">
<input type="hidden" name="_token" value="{{ csrf_token() }}">

第一个是将表单提交方法更改为“PUT”,第二个是将CSRF令牌包含到表单中

然后在AJAX代码中,将类型:“PUT”更改为类型:“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);
    }
});
$.ajax({
url:‘电影/13’,
键入:“POST”,
processData:false,
contentType:false,
数据:formData,
成功:函数(结果){},
错误:函数(数据){
控制台日志(数据);
}
});

您是否在路由文件中使用Route::put()?@MatMorici是的,对于put,我使用的是:Route::put('movies/{id}','MoviesController@update'); 对于POST:Route::POST('movies','MoviesController@add');很好用!