为了账号安全,请及时绑定邮箱和手机立即绑定

Laravel 5.8 使用 PUT 方法和 ajax 上传文件

Laravel 5.8 使用 PUT 方法和 ajax 上传文件

PHP
回首忆惘然 2022-06-17 15:27:20
我正在尝试使用带有 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数据来接收请求。



查看完整回答
反对 回复 2022-06-17
  • 1 回答
  • 0 关注
  • 144 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信