我有一个使用visualforce和apex制作的托管应用,而不是照明应用。该应用程序在后台使用sharedworker。问题是应用程序可以完美地从管理员帐户运行,我可以看到为应用程序创建共享工作程序。
但是当我们为其他用户安装应用程序时会出现问题。在这种情况下,除了使用sharedworker的功能之外,一切都有效。在调试时,我发现对于非管理员用户来说,共享工作者本身并没有被创建。
在调试中,我发现,如果我使用断点暂停原因,我可以在调试器中看到共享工作者但不能检查它但是一旦我恢复执行代码,共享工作者被删除。
这是代码,我正在运行以创建共享工作者:
worker = new SharedWorker('/resource/worker', 'eee-salesforce');
startWorker();
worker
是具有共享工作代码的JS文件。
function startWorker() {
worker.port.start();
worker.port.addEventListener('message', function (event) {
var parsedEventData = JSON.parse(event.data);
var parsedData = parsedEventData.data;
switch (parsedEventData.type) {
case 'connected':
break;
case 'reqUser':
worker.port.postMessage(['username', getLocalStorageValue("user"), getLocalStorageValue("domain")]);
break;
case 'incoming':
createNotification(parsedData);
break;
case 'incomingDesktop':
createDesktopNotification(parsedData);
break;
case 'call':
break;
case 'logout':
sforce.interaction.cti.disableClickToDial();
$("#homepage").hide();
$("#login").show();
break;
}
});
window.addEventListener("beforeunload", function (e) {
worker.port.postMessage('unload');
return null;
});
}
在Firefox中,我收到此错误:
The resource from “https://eeesf.na50.visual.force.com/resource/worker” was blocked due to MIME type mismatch (X-Content-Type-Options: nosniff)
但是我检查了我的静态包,这个文件的mime类型是application/javascript
。
我对如何解决这个问题缺乏想法,如果有人在过去遇到过这个问题,或者想知道如何解决这个问题,我将不胜感激。
答案 0 :(得分:0)
如果使用非常相似,请确保使用visual force merge语法来创建worker
worker = new SharedWorker('{!$ Resource.Worker}','eee-salesforce');