Uncaught Error:SECURITY_ERR:DOM Excption 18

今天写一个web workers的小demo,代码比较简单,如下:

      function test(){
        if(typeof(Worker)!=="undefined"){
          var work = new Worker("webwork.js");
          worker.onmessage =function(event){
            var data = event.data;
            document.getElementById("resultDiv").innerHTML=data;
          };
           worker.postmessage(100);
        }else{
          alert("不支持webwork");
        }       
      }

但通过本地浏览器直接打开该HTML页面时,却一直报出如下异常:

Uncaught Error:SECURITY_ERR:DOM Excption 18

出错定位在:

var work = new Worker("webwork.js");
分析发现,JS跨域限制不能访问非同一域名下的数据,而本地打开是没有域名的,故JS认为你是跨域了,故出现了SECURITY_ERR异常。若要继续测试,就将这个文件扔到某个服务器下,比如TOMCAT下即可。

其它需要额外引用资源文件的,都会存在同样问题,例如:canvas中调用getImgData()方法。


原文地址:https://www.cnblogs.com/hehe520/p/6330178.html