javascript - 不正确的响应 mime 类型(预期的 'application/wasm)PSPDFKIT 和保留的大小不足以包含签名问题 oracle apex?
问题描述
我遵循了 PSPDFKit 独立集成步骤,以及公共目录中的所有文件(Apache tomcat 中的文件夹“i”),
我得到“PSPDFKit for Web 已成功加载!” 消息,但它挂断了,控制台给了我一个错误:-
Failed to execute 'compile' on 'WebAssembly': Incorrect response MIME type. Expected 'application/wasm'.
当我尝试添加数字签名时也遇到了这个问题
Cannot add the container structure because the reserved size is not enough to contain the signature. Available size 8193, actual size 89694
我通过下面的代码尝试过
PSPDFKit.load({
container: "#pspdfkit",
document: 'f?p=&APP_ID.:0:&APP_SESSION.:APPLICATION_PROCESS=PREVIEW_FILE:::FILE_ID:' + apex.item('P6_ID').getValue(),
licenseKey: "",
initialViewState: new PSPDFKit.ViewState({
showSignatureValidationStatus:
PSPDFKit.ShowSignatureValidationStatusMode.IF_SIGNED
}),
async trustedCAsCallback() {
const response = await fetch("http://localhost:90/i/certs/ca.pem");
const cert = await response.text();
return [cert];
}
})
.then(function(instance) {
var item = {
type: "custom",
id: "my-button",
title: "digital sign",
onPress: function(event) {
instance
.signDocument(null, generatePKCS7)
.then(() => {
console.log("document signed.");
})
.catch(error => {
console.error("The document could not be signed.", error);
});
}
};
if (app_user =="aaaa") {
instance.setToolbarItems(function(items) {
items.push(item);
return items;
});
}
function generatePKCS7({ fileContents }) {
const certificatePromise = fetch("http://localhost:90/i/certs/certificate.pem").then(response =>
response.text()
);
const privateKeyPromise = fetch("http://localhost:90/i/certs/private-key.pem").then(response =>
response.text()
);
return new Promise((resolve, reject) => {
Promise.all([certificatePromise, privateKeyPromise])
.then(([certificatePem, privateKeyPem]) => {
const certificate = forge.pki.certificateFromPem(certificatePem);
const privateKey = forge.pki.privateKeyFromPem(privateKeyPem);
const p7 = forge.pkcs7.createSignedData();
p7.content = new forge.util.ByteBuffer(fileContents);
p7.addCertificate(certificate);
p7.addSigner({
key: privateKey,
certificate: certificate,
digestAlgorithm: forge.pki.oids.sha256,
authenticatedAttributes: [
{
type: forge.pki.oids.contentType,
value: forge.pki.oids.data
},
{
type: forge.pki.oids.messageDigest
},
{
type: forge.pki.oids.signingTime,
Value: new Date()
}
]
}
);
p7.sign({ detached: true })
const result = stringToArrayBuffer(
forge.asn1.toDer(p7.toAsn1()).getBytes()
);
resolve(result);
})
.catch(reject);
});
}
function stringToArrayBuffer(binaryString) {
const buffer = new ArrayBuffer(binaryString.length);
let bufferView = new Uint8Array(buffer);
for (let i = 0, len = binaryString.length; i < len; i++) {
bufferView[i] = binaryString.charCodeAt(i);
}
return buffer;
}
})
.catch(function(error) {
console.error(error.message);
})
apex version 19.2
tomcat 8.5 ,
ords
解决方案
看起来 WASM 文件的内容类型不正确。解决方案是修复您的服务器以返回正确的内容类型或在加载 PSPDFKit 时禁用 WebAssembly 的流式实例化,如下所述:https ://pspdfkit.com/guides/web/current/troubleshooting/common-issues/#response -has-unsupported-mime-type-error
将来,请联系https://pspdfkit.com/support/request,我们的支持团队将在那里为您提供帮助。
推荐阅读
- ssrs-2017 - 我正在尝试在 SSRS 中创建具有下拉功能的参数
- powerbi - 如果今天是每月的第一天,则仅过滤上个月的日期
- angular - 访问路由时出现 SSR Angular Universal Server 错误
- javascript - 递归如何在倒计时函数中工作
- angular - 与 Webpack 相比,Angular CLI 开发构建速度较慢
- c# - 基于调用实例交换重用实例的日志记录操作
- c# - 使用 Web API 和 SQL Server 查询的庞大数据集基于游标的分页
- excel - 为多个工作表添加循环代码工作
- java - @GuardedBy 是否保护某些东西?
- python-3.x - 如何修复 ImportError:无法从“Test”导入名称“testMethod”