文件API-适用于cURL,但不适用于AJAX和Postman

时间:2018-11-22 08:55:59

标签: jquery ajax curl

我正在将gotenberg作为我的文档进行PDF转换API,并且正在与cURL一起使用。

cURL命令如下所示

curl --request POST --url http://example.com  --header 'Content-Type: multipart/form-data' --form files=@file.docx > result.pdf

API仅适用于cURL,当我尝试用APIPostman击中相同的AJAX时,得到响应但保存了详细信息或使用Postman预览响应,我得到一个空的PDF文件。

我的AJAX请求看起来像这样

  var settings = {
        "async": true,
        "crossDomain": true,
        "url": "http://convertionapi.com",
        "method": "POST",
        "processData": false,
        "contentType": false,
        "data": form,
        success: function(data){
            console.log("Success", data);
            s3.upload({
                Key: "files/test.pdf",
                Body: data,
                ContentType: 'application/pdf',
                ACL: 'public-read',
            },function(err, data) {...}
    },
    error: function(err) { 
        console.log("Error", err);
    }
}

任何人都可以对我的请求进行一些了解吗?

我得到以下标头,但创建的文件为空

enter image description here

1 个答案:

答案 0 :(得分:0)

我需要处理blob的响应,因此我的AJAX呼叫一定看起来像这样。

var settings = {
        "async": true,
        "crossDomain": true,
        "url": "http://convertionapi.com",
        "method": "POST",
        "processData": false,
        "contentType": false,
        "data": form,
        "xhr": function(){
               var xhr = new XMLHttpRequest();
               xhr.responseType= 'blob'
               return xhr;
        },
        success: function(data){
            console.log("Success", data);
            s3.upload({
                Key: "files/test.pdf",
                Body: data,
                ContentType: 'application/pdf',
                ACL: 'public-read',
            },function(err, data) {...}
    },
    error: function(err) { 
        console.log("Error", err);
    }
}