Файловый API - работает с cURL, но не работает с AJAX и Postman - PullRequest
0 голосов
/ 22 ноября 2018

Я использую 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, когда я пытаюсь нажать тот же API с Postman или 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 голосов
/ 23 ноября 2018

Мне нужно было обработать 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);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...