Я пытаюсь загрузить файл из Sharepoing, используя ajax вызов со страницы html. Я могу загрузить успешно, но когда я пытаюсь загрузить файл, в случае текстового файла загрузка прошла успешно, и файл открывается с правильным содержимым, но в случае pdf файл загружается как пустой, а в случае ppt, файл corrput.
Я использую код ниже. На данный момент я пишу все, чтобы получить успешный файл. Пожалуйста, дайте мне знать, что я могу пропустить.
<apex:page controller="XXX_SharePoint" showHeader="false" sidebar="false" showChat="false" docType="html-5.0" standardStylesheets="false" action="{!onPageLoad}">
<script src="https://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.9.1.min.js" type="text/javascript"></script>
<Script>
window.onload = () => {
let code = '{!ACCESS_TOKEN}';
let extension = '{!extension}';
//make a ajax callout
$.ajax({
url: "https://m.sharepoint.com/_api/Web/GetFileByServerRelativePath(decodedurl='/XXXDocument/pdf4.pdf')/$value",
type: 'get',
contentType: true,
processData: false,
headers: { accept: 'application/json',
"Authorization": "Bearer "+code,
},
success: function(response){
alert('success response'+response)
var a = document.createElement('a');
var binaryData = [];
binaryData.push(response);
var url = window.URL.createObjectURL(new Blob(binaryData),{type: "application/octet-stream"});
//var url = window.URL.createObjectURL(response.blob);
a.href = url;
a.download = 'myfile.pdf';//+extension;
document.body.appendChild(a);
a.click();
a.remove();
window.URL.revokeObjectURL(url);
},
});
}
</Script>
</apex:page>