2017-08-04 73 views
0

我做了很多o测试通过jQuery ajax上传文件,但我仍然有这个错误:400错误的请求

这是我的代码:

function createDatasetSync() { 
 
    var form = $('#fileUploadForm')[0]; 
 
    var data = new FormData(form); 
 
    $.ajax({ 
 
     type: 'POST', 
 
     url: '<remote API to call>', 
 
     beforeSend: function(xhr) { 
 
      xhr.setRequestHeader("Authorization", "Bearer " + <myToken>); 
 
      xhr.setRequestHeader("Content-Type", "multipart/form-data"); 
 
     }, 
 
     data: data, 
 
     cache: false, 
 
     contentType: false, 
 
     processData: false, 
 
     timeout: 600000, 
 
     success: function (data) { 
 
      console.log(data); 
 
     }, 
 
     error: function (data) { 
 
      console.log("ERROR: " , data); 
 
     } 
 
    }); 
 
} 
 

 
$(document).ready(function() { 
 
    $("#btnSubmit").click(function (event) { 
 
     event.preventDefault(); 
 
     createDatasetSync(); 
 
    }); 
 
});
<html> 
 
    <body> 
 
     <form method="POST" enctype="multipart/form-data" id="fileUploadForm"> 
 
      <input type="file" name="files"/><br/><br/> 
 
      <input type="submit" value="Submit" id="btnSubmit"/> 
 
     </form> 
 
    </body> 
 
</html>

我有一个.zip文件发送到远程Web服务。

这是我试图复制卷曲电话:

curl -X POST -H "Authorization: Bearer myTOKEN" -H "Cache-Control: no-cache" -H "Content-Type: multipart/form-data" -F "[email protected]:\myFile.zip" -F "type=image" URL_to_call 

在此先感谢。

+0

首先,“http status”为400表示您尝试向服务器发送请求的错误负载。你能验证'data'的格式是什么吗?这会给你一个洞察问题,你会没事 – Rowland

+0

我试着用不同的文件类型:.jpeg .zip .txt和我有同样的错误。 我需要上传一个.zip文件 –

回答

0
$("#btnSubmit").click(function (event) { 
      event.preventDefault(); 
      createDatasetSync();    
    }); 

此代码在提交按钮上无效。更改按钮类型属性为submit

+0

Hi Karan,谢谢你的回应。我改变类型从提交到按钮,但我有同样的结果:( createDatasetSync()被称为但具有相同的错误:400错误的请求 –

+0

是否有控制台中的任何错误 –

+0

有400(错误的请求){消息:不好的请求},但是如果替换为标题 “Content-Type”,“multipart/form-data”with “Content-Type”,“multipart/form-data; boundary =”+ data.boundary 错误消息更改为{“message”:“此类请求需要'type'参数。”} –