javascript - How to upload file in laravel with formData in jquery ajax - Stack Overflow

I am using laravel 5.4 and jquery Ajax to upload file and some form data. I am using below code functio

I am using laravel 5.4 and jquery Ajax to upload file and some form data.

I am using below code

function submitDocument(){
    var formData = new FormData(); // Currently empty
    var _token = $("#_token").val().trim();
    formData.append('title', $("#title").val());
    formData.append("doc",$("#doc")[0].files[0]);
    $.ajax({
      url: "documents",
      method: "post",
      data:{_token,formData},
    }).done(function(data) {

    });
    return false;// Not to submit page
}

And I am getting error

Uncaught TypeError: Illegal invocation

How can I fix this ? Thanks in advance for your time.

I am able to get value in formData by using

console.log(formData.get('title'));
console.log(formData.get('doc'));

I am using laravel 5.4 and jquery Ajax to upload file and some form data.

I am using below code

function submitDocument(){
    var formData = new FormData(); // Currently empty
    var _token = $("#_token").val().trim();
    formData.append('title', $("#title").val());
    formData.append("doc",$("#doc")[0].files[0]);
    $.ajax({
      url: "documents",
      method: "post",
      data:{_token,formData},
    }).done(function(data) {

    });
    return false;// Not to submit page
}

And I am getting error

Uncaught TypeError: Illegal invocation

How can I fix this ? Thanks in advance for your time.

I am able to get value in formData by using

console.log(formData.get('title'));
console.log(formData.get('doc'));

Share Improve this question edited Nov 20, 2017 at 13:01 Niklesh Raut asked Nov 18, 2017 at 8:03 Niklesh RautNiklesh Raut 34.9k17 gold badges81 silver badges112 bronze badges 3
  • Have you tried adding the _token value inside the formData object? – gbalduzzi Commented Nov 18, 2017 at 8:18
  • @gbalduzzi : Yes I tried, No succes. – Niklesh Raut Commented Nov 18, 2017 at 8:35
  • Seems like a duplicate: stackoverflow./questions/6974684/… – Don't Panic Commented Nov 21, 2017 at 16:02
Add a ment  | 

3 Answers 3

Reset to default 3 +50

Try adding processData: false, contentType: false in your code

Replace your script with this:

function submitDocument(){
var formData = new FormData(); // Currently empty
var _token = $("#_token").val().trim();
formData.append('title', $("#title").val());
formData.append("doc",$("#doc")[0].files[0]);
$.ajax({
  url: "documents",
  method: "post",
  data:{_token,formData},
  cache : false,
  processData: false,
  contentType: false
}).done(function(data) {

});
return false;// Not to submit page
}

By default, data passed in to the data option as an object will be processed and transformed into a query string, fitting to the default content-type "application/x-www-form-urlencoded". If you want to send a DOMDocument, or other non-processed data, set this option to false.

<script>
$(document).ready(function() {
    var url = "{{ url('/admin/file') }}"; 
    var options = { 
            type: 'post',
            url: url,       
            headers: {'X-CSRF-TOKEN': '{{ csrf_token() }}'},
            dataType: 'doc',
            cache: false,
            contentType: false,
            processData: false,
            success: function (data) {
                alert('Ok');
            },
            error: function (data) {
                alert('Error');
            }
    }; 
    $('#save').on('click', function() { 
        $("#form").ajaxSubmit(options); 
        return false; 
    }); 
}); 
</script>

Try this way

$(document).ready(function (){
$("#form").on('submit',(function(e){
        e.preventDefault();
        var formdata = new FormData(this);
        var _token = $("#_token").val().trim();
        formData.append('title', $("#title").val());
        formData.append("doc",$("#doc")[0].files[0]);
        $.ajax({
            url: "/site/url",
            type: "POST",
            data:{token:_token,formData},
            contentType: false,
            cache: false,
            processData:false,
            success: function(data){

            },
        });
    }));});

发布者:admin,转转请注明出处:http://www.yc00.com/questions/1745268829a4619620.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信