Javascript 有时缺少postMessage()数据

Javascript 有时缺少postMessage()数据,javascript,progressive-web-apps,service-worker,postmessage,Javascript,Progressive Web Apps,Service Worker,Postmessage,我正在尝试为我的PWA创建一个web共享目标,在这里我可以将其他应用程序中的文件共享到我的PWA,它可以很好地处理小文件,但是当文件大小超过大约1MB时,服务人员截取应用程序的POST请求时提供的数据在事件中返回null。data,我不完全确定是什么原因导致了这种情况,我也不知道这是否仅仅是一个时间问题,或者我是否需要改变我做事的方法。以下是所有相关代码: sw.js self.addEventListener('fetch',函数(事件){ if(event.request.method=='

我正在尝试为我的PWA创建一个web共享目标,在这里我可以将其他应用程序中的文件共享到我的PWA,它可以很好地处理小文件,但是当文件大小超过大约1MB时,服务人员截取应用程序的POST请求时提供的数据在
事件中返回null。data
,我不完全确定是什么原因导致了这种情况,我也不知道这是否仅仅是一个时间问题,或者我是否需要改变我做事的方法。以下是所有相关代码:

sw.js

self.addEventListener('fetch',函数(事件){
if(event.request.method=='POST'&&event.request.url.includes('/me/upload/')){
event.respondWith((异步()=>{
const formData=wait event.request.formData();
const file=formData.get('file');
函数ReceiveReadyMessage(事件){
如果(event.data.action===‘接收共享文件’){
event.source.postMessage({file,action:'load image'});
self.removeEventListener('message',receiveReadyMessage);
}
}
self.addEventListener(“消息”,ReceiveReadyMessage);
返回Response.redirect('/me/upload/',303);
})());
} //...
});
index.html

函数接收消息(事件){
if(event.data==null | | event.data.file==null){
帮助(“在接收文件时,似乎出现了问题,这通常发生在大型文件中,如果此问题仍然存在,请与Alek联系。”);
返回;
}
if(event.data.action===‘加载图像’){
让fileSelector=document.getElementById('uploadlbl');
文件[0]=event.data.file;
如果(文件){
fileSelector.innerText=文件[0]。名称;
}否则{
fileSelector.innerText='您的文件在此';
}
}
}
navigator.serviceWorker.addEventListener('message',receiveMessage,false);
navigator.serviceWorker.ready.then(注册=>{
registration.active.postMessage({action:'receive share file'});
});
manifest.json共享目标

“共享目标”:{
“操作”:“/me/upload/”,
“方法”:“发布”,
“enctype”:“多部分/表单数据”,
“参数”:{
“文件”:[
{
“名称”:“文件”,
“接受”:[“*/*”,“*”]
}
]
}
}