Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/449.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么跨境员工被阻止,为什么解决方案可以?_Javascript_Html_Security_Web Worker - Fatal编程技术网

Javascript 为什么跨境员工被阻止,为什么解决方案可以?

Javascript 为什么跨境员工被阻止,为什么解决方案可以?,javascript,html,security,web-worker,Javascript,Html,Security,Web Worker,最近,我在一个支架上工作,使用工人进行一些重物搬运 我发现,至少在大多数在线代码编辑器(snippets/jsfiddle/codepen/glitch)上,我似乎无法从另一个域加载工作程序。我收到一个安全错误(或在firefox静默故障中) 函数startWorker(url){ 试一试{ const worker=新的worker(url); log('startedworker'); worker.onmessage=e=>log('black',e.data); worker.post

最近,我在一个支架上工作,使用工人进行一些重物搬运

我发现,至少在大多数在线代码编辑器(snippets/jsfiddle/codepen/glitch)上,我似乎无法从另一个域加载工作程序。我收到一个安全错误(或在firefox静默故障中)

函数startWorker(url){
试一试{
const worker=新的worker(url);
log('startedworker');
worker.onmessage=e=>log('black',e.data);
worker.postMessage('Hi from page');
}捕获(e){
console.error('无法启动辅助程序:',e);
}
}
常数workerURL=https://greggman.github.io/doodles/test/ping-worker.js';
startWorker(workerURL)
问题#1:我为什么会犯这样的错误?
因为这是规范要求的。从

  • 假设请求是一个新请求,其url为url,客户端为获取客户端设置对象,目标为目标,模式为
    “同一来源”
    ,凭据模式为
    “同一来源”
    ,解析器元数据为
    “未插入解析器”
    ,并且设置了其使用url凭据标志
  • 因此,请求将其模式设置为
    “同源”
    ,因此,请求将失败:

    (异步()=>{
    常量url=”https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js";
    试一试{
    log('default(“no cors”)'))
    等待获取(url)
    console.log('success');
    }
    catch(e){console.log('failed');}
    试一试{
    log('like workers(“同源”))
    等待获取(url,{mode:“同源”})
    console.log('success');
    }
    catch(e){console.log('failed');}
    
    })();同源策略和CORS您是说请求工作人员不请求CORS,但fetch请求CORS?请阅读顶部文档中的内容以及黄色框。链接中有文本“注意:对于数据URI是否来源相同,浏览器制造商之间存在分歧。虽然Gecko 10.0(Firefox 10.0/Thunderbird 10.0/SeaMonkey 2.7)和更高版本都接受数据URI,但其他浏览器都不是这样。”或者只需将文件移动到您的域并完成处理,而不必冒着有人修改文件做坏事甚至删除文件的风险。