我正在尝试使用带有 ajax 的 PUT 方法更新文件。无论出于何种原因,我都无法在控制器中发送请求。我创建了一个自定义验证器来检查文件是否丢失或某个输入请求是否丢失。它不断返回 422 文件丢失和名称丢失。我想念什么?下面是我的代码。<script> $(document).ready(function() { $.ajaxSetup({ headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') } }); $('#news_id').on('submit', function(e) { e.preventDefault(); var data = new FormData(); var newsletter_name = $('#newsletter_name').val(); var newsletter_file = $('#newsletter_file')[0].files[0]; data.append('newsletter_name', newsletter_name); data.append('newsletter_file', newsletter_file); var id = $('#hidden_id').val(); console.log(newsletter_file); $.ajax({ url: '/admin/newsletter/' + id, type: 'PUT', data: data, contentType: false, processData: false, beforeSend: function(data) { }, success: function(data) { console.log('success'); }, error: function(data) { console.log(data) }, }); }); });</script>这是我的html代码<div class="container mt-5"> <div class="col-md-6"> <form action="" method="" enctype="multipart/form-data" id="news_id"> @method('PUT') <div class="form-group"> <label for="newsletter_name">Name</label> <input type="text" value="{{$newsletter->newsletter_name}}" name="newsletter_name" id="newsletter_name" class="form-control" placeholder="" aria-describedby="helpId"> <input type="hidden" name="hidden_id" id="hidden_id" value="{{$newsletter->newsletter_id}}"> <input type="hidden" name="_method" value="PUT"> </div> </div> </form> </div></div>
1 回答
慕盖茨4494581
TA贡献1850条经验 获得超11个赞
添加data.append('_method', 'PUT');
然后将您的请求类型更改为type: 'POST'
因为某些浏览器无法发送PUT
请求,所以 Laravel 可以PUT
通过接收_method
数据来接收请求。
- 1 回答
- 0 关注
- 144 浏览
添加回答
举报
0/150
提交
取消