У меня есть запрос POST, как это:ArrayBuffer AngularJs POST запрос
$scope.myFunction = function (name, id, value) {
$http.post(/retrievePDFFiles, {
name: name,
id: id,
value: value
}).success(function(data, headers) {
var filename = headers('filename');
if(data.byteLength > 250) {
var blob = new Blob([data], {type : 'application/pdf;charset=utf-8'});
saveAs(blob, filename);
} else {
console.log("Error");
}
}).error(function(data) {
console.log(data);
});
}
С помощью этого вызова я отправить некоторые параметры, чтобы сохранить их в виде таблицы в моей БД, и как ответ у меня есть поток PDF. Запрос на сервер возвращает правильно 200 и все параметры исправлены, и все сохраняется в db, но файл PDF не работает. У меня ошибка в консоли:
SyntaxError: Unexpected token %
и если я отлаживаю запрос, он переходит в функцию .error. Я думаю, проблема заключается в том, что он не признает, что ему нужно загрузить поток, и я не знаю, что он не работает. Я думаю, что просто добавление
responseType : 'arraybuffer'
где-то он будет работать, но я не знаю, где! Я не могу прикоснуться к структуре параметров. Любая идея?
EDIT: я попытался, как написано здесь без каких-либо результатов How to read binary data in AngularJS in an ArrayBuffer?
Возможный дубликат [Как читать двоичные данные в AngularJS в ArrayBuffer?] (http://stackoverflow.com/questions/16791295/how-to-read-binary-data-in-angularjs-in -an-arraybuffer) –
Это не дубликат, я уже пробовал этот путь без успеха –
Вы передали свойства конфигурации в качестве третьего аргумента? get и post использовать другое количество аргументов, get имеет параметры конфигурации как второй аргумент, а пост использует его как третий аргумент –