Я искал и видел связанный ответ, но ни один из них не подходит для моего случая. На самом деле, я отправляю данные формы с файлами на сервер, используя easyAjax из бланка бланка laravel. Ниже приведен мой код.
{!! Form::open(['id'=>'createTemplate','class'=>'ajax-form','method'=>'POST', 'files' => true, 'enctype'=>'multipart/form-data']) !!}
<div class="form-body">
<h3 class="box-title">@lang('modules.campaign_list.templateDetail')</h3>
<hr>
<div class="row">
<div class="col-md-12 ">
<div class="form-group">
<label>@lang('modules.campaign_list.templateName')</label>
<input type="text" name="template_name" id="template_name" class="form-control">
</div>
</div>
<div class="col-md-12 ">
<div class="form-group">
<label>@lang('modules.campaign_list.cc') @lang('modules.campaign_list.optional')</label>
<input type="text" name="cc" id="cc" class="form-control">
{{--<select class="select2 m-b-10 select2-multiple " multiple="multiple"--}}
{{--data-placeholder="Choose Contact" name="contact_id[]" id="contact_id">--}}
{{--@foreach($contacts as $contact)--}}
{{--<option value="{{$contact->id}}">{{$contact->first_name }} {{$contact->last_name}}</option>--}}
{{--@endforeach--}}
{{--</select>--}}
{{--<input type="text" name="contacts_id[]" id="contact-name" class="form-control select2">--}}
</div>
</div>
<div class="col-md-12 ">
<div class="form-group">
<label>@lang('modules.campaign_list.bcc') @lang('modules.campaign_list.optional')</label>
<input type="text" name="bcc" id="bcc" class="form-control">
</div>
</div>
<div class="col-md-12 ">
<div class="form-group">
<label>@lang('modules.campaign_list.subject')</label>
<input type="text" name="subject" id="subject" class="form-control">
</div>
</div>
<div class="col-md-12 ">
<div class="form-group">
<label>@lang('modules.campaign_list.body')</label>
<textarea type="text" name="template_body" id="template_body" class="form-control"></textarea>
</div>
</div>
<div class="col-md-12 ">
<div class="form-group">
<label>@lang('modules.campaign_list.attachment') @lang('modules.campaign_list.optional') </label>
<input type="file" name="attachment" id="attachment" class="form-control" multiple="multiple">
</div>
</div>
<!--/span-->
</div>
</div>
<div class="form-actions">
<button type="button" id="save-form" class="btn btn-success"><i
class="fa fa-check"></i> @lang('app.save')</button>
<button type="reset" class="btn btn-default">@lang('app.reset')</button>
</div>
{!! Form::close() !!}
Ниже приведен код AJAX
$('#save-form').click(function () {
var file = $('#attachment').val();
var formData = new FormData($('form')[0]);
// var body = bodyText.document.getBody().getText();
bodyText.updateElement();
$.easyAjax({
url: '{{route('admin.templates.store')}}',
// container: '#createTemplate',
type: "POST",
// redirect: true,
dataType: 'json',
data: formData,
contentType: false,
processData: false,
success: function(response){
if(response.status == 'success'){
alert(response);
$(".ti-close").trigger('click');
showData();
}
}
})
});
Когда я нажимаю кнопку «Сохранить» в форме для отправки, я получаю следующую ошибку
jquery.js:9208 Uncaught TypeError: Illegal invocation
at e (jquery.js:9208)
at Ab (jquery.js:9208)
at Function.n.param (jquery.js:9208)
at Function.ajax (jquery.js:9208)
at Function.$.easyAjax (helper.js:144)
at HTMLButtonElement.eval (eval at globalEval (jquery.js:9208),
<anonymous>:7:11)
at HTMLButtonElement.dispatch (jquery.js:9208)
at HTMLButtonElement.r.handle (jquery.js:9208)
Что я делаю неправильно и чтовызывает эту ошибку.