Ajax没有发送FormData

时间:2019-08-25 18:13:56

标签: javascript jquery ajax image form-data

我有一个带有multipart/form-data的enctype的表单,并且我正在使用FormData和ajax发送文件(图像),但是正如我所看到的,它没有发送。这是代码

 $(document).ready(()=>{
     $('#form').submit((e)=>{
         e.preventDefault();
         const formData = new FormData();
         const title = $('#title').val();
         const news = $('#news').val();
         formData.append('title', title);
         formData.append('news', news);
         formData.append('img', $('#form').find('input[type="file"] [name="thumbnail"]:first')[0].files[0]);
         $.ajax({
             url: '/admin-panel/add-news',
             method: 'POST',
             data: formData,
             processData: false,
             contentType: false,
             success: (r)=>{
                 $('#news-container').html(`<div class="news">${r.news}</div>`);
             },
             error: (xhr,textStatus,error)=>{
                 try{ 
                    const response = JSON.parse(xhr.responseText);
                    if(response.message){
                        $('#error').html(`<p class="err">${response.message}</p>`);
                    }
                 }catch(error){
                    $('#error').html(`<p class="err">${xhr.responseText}</p>`);
                 }
             }
         })
     })
 })

但这给了我错误

  

未捕获的TypeError:无法读取属性“文件”

出什么问题了?

谢谢!

1 个答案:

答案 0 :(得分:0)

检查您的ajax属性-contentType