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

Laravel 5.8 ajaxupload POST 419(状态未知)

Laravel 5.8 ajaxupload POST 419(状态未知)

PHP
梵蒂冈之花 2021-08-27 10:00:10
我有个问题。我想使用 ajaxupload 上传 img 但我做不到,我总是收到异常 POST 419(未知状态)。我做了所有使用文档的事情,但我不知道。所以,我的路线:Route::post('/products/image','ProductController@image');在主要布局中,我有:<meta name="csrf-token" content="{{ csrf_token() }}">我的form.blade.php <form action="{{route('')}}" method="post"> @csrf <div class="box box-danger box-solid file-upload">    <div class="box-body">       <div id="single" class="btn btn-success"         data-url="products/image" data-name="single">           Chose        </div>        <div class="single"></div>还有我的 app.js:  $.ajaxSetup({      headers: {     'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')     }  });  if($('div').is('#single')){        var buttonSingle = $("#single"),        buttonMulti = $("#multi"),        file;    }   if(buttonSingle){     new AjaxUpload(buttonSingle, {     action: '/admin/' + buttonSingle.data('url') + "?upload=1",     data: {name: buttonSingle.data('name')},     name: buttonSingle.data('name'),     onSubmit: function(file, ext){        if (! (ext && /^(jpg|png|jpeg|gif)$/i.test(ext))){            alert('Exception');            return false;        }      buttonSingle.closest('.file-upload').find('.overlay').css({'display':'block'});    },     onComplete: function(file, response){        $res = JSON.parse(response);        if($res['error']){            alert($res['error']);            buttonSingle.closest('.file-upload').find('.overlay').css({'display': 'none'});            return false;        }        setTimeout(function(){            buttonSingle.closest('.file-upload').find('.overlay').css({'display':'none'});            response = JSON.parse(response);            $('.' + buttonSingle.data('name')).html('<img src="/images/' + response.file + '" style="max-height: 150px;">');        }, 1000);    }});
查看完整描述

2 回答

?
波斯汪

TA贡献1811条经验 获得超4个赞

我在 Dropzone 上传时遇到了完全相同的问题请不要忘记添加 enctype="multipart/form-data" 作为表单属性并尝试发送这样的令牌数据


data: {

   _token: $('meta[name="csrf-token"]').attr('content'),

   name: buttonSingle.data('name')

},


查看完整回答
反对 回复 2021-08-27
?
阿波罗的战车

TA贡献1862条经验 获得超6个赞

你应该在标题部分有类似的东西


<meta name="_token" content="{{ csrf_token() }}"><meta>

或者


<meta name="csrf-token" content="{{ csrf_token() }}">

这是一个应该在任何 DOM 元素中加载的通用脚本


<script>

    $(function () {

        $.ajaxSetup({

            headers: {'X-CSRF-TOKEN': $('meta[name="_token"]').attr('content')}

        });

    });

</script>

注意:使用正确的名称 name="_token" 或 name="csrf-token"


查看完整回答
反对 回复 2021-08-27
  • 2 回答
  • 0 关注
  • 145 浏览

添加回答

举报

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