У меня есть простая структура, которая генерирует PDF из jsPDF, получает 'datauristring' и передает его в запрос AJAX.Однако метод AJAX не срабатывает.Когда он пытается «отправить», он генерирует исключение «h не определено».Я понял это по трассировке запросов XHR, и это появилось в библиотеке jQuery.Могу ли я не запускать запрос AJAX так скоро после обратного вызова от jsPDF?
Следует отметить, что я отправляю PDF в службу, которая объединяет этот PDF с другим и возвращает совершенно новый документ.
var docX = new jsPDF("p", "pt", "letter");
margins = {
top: 20,
bottom: 20,
left: 20,
width: 522
};
specialElementHandlers = {
// element with id of "bypass" - jQuery style selector
'#bypassme': function (element, renderer) {
// true = "handled elsewhere, bypass text extraction"
return true
}
};
docX.fromHTML (
document.getElementById('productModalContent'),
margins.left,
margins.top, {
'width' : margins.width,
'elementHandlers': specialElementHandlers
},
function (dispose) {
specDoc = (docX.output('datauristring'));
console.log(dispose);
//docX.save('asdfas.pdf');
//console.log(specDoc);
processPDF(specDoc);
}, margins
);
function processPDF(doc) {
console.log(doc.length);
$.ajax({
type: "POST",
url: "https://someurl",
data: {
'partNumber' : '$!{rawPartNumber}',
'region' : '$!{regionContentlet.code}',
'doc' : doc
},
cache: false,
success: function(data) {
console.log("success?");
var link=document.createElement('a');
link.href='data:application/pdf;base64,' + data;
link.download="myfile.pdf";
link.setAttribute('target', '_blank');
link.click();
},
error: function(data) {
console.log(data);
}
});
}
РЕДАКТИРОВАТЬ: удалить ajax и добавить выборку.
const response = await fetch('myurl', {
method: 'POST',
body: {
'partNumber' : '$!{rawPartNumber}',
'region' : '$!{regionContentlet.code}',
'myDiv' : doc
}
});