WebWorker - Ajax调用 - 错误

时间:2015-07-23 07:58:48

标签: javascript ajax web-worker

我正在尝试对ajax.htm文件进行AJAX调用。使用网络工作者。如果它工作正常,数据必须按给定的间隔保持填充。

我没有收到错误,并且get消息似乎正在运行,但数据未在页面上填充。 worker.js发布的消息未在主页面中被监听。这是代码。

我的webWorker.html文件如下:

    <!DOCTYPE html>
<html>
<head>
    <title>Worker Sample</title>
    <script type="text/javascript">
        var worker = new Worker('worker.js');
       // console.log(worker);
        document.addEventListener("DOMContentLoaded",function(){

            var result = document.querySelector('#result');
          //  console.log(result);


            worker.addEventListener('message', function (event) {
                console.log(event.data);
                createElement('li', result,'',JSON.parse(event.data));
            });
            worker.addEventListener('error', function(err){
                console.log("There was a problem",err);
            });
            worker.postMessage('start');
        });

        function createElement(elementType, parent, className, innerHTML, custom) {
                var element = document.createElement(elementType);
                if (parent) parent.appendChild(element);
                if (className) element.className = className;
                if (innerHTML) element.innerHTML = innerHTML;
                if (typeof custom !== 'undefined') {
                    for (var prop in custom) {
                        element.setAttribute(prop, custom[prop]);
                    }
                }
                return element;
            }

    </script>
</head>
<body>
<div>
    <ul id="result">Result</ul>
</div>

</body>
<html>

    my worker.js is as follows:
   /**
 * Created by lakshmi on 7/22/15.
 */


self.addEventListener('message', function (e) {

    if(e.data === 'start'){
        setInterval(function () {
            getData()
        }, 1000);
    }


    function getData() {
            var xhr = new XMLHttpRequest();
            xhr.open('GET','ajaxcontent.htm');
            xhr.withCredentials = true;
           // xhr.setRequestHeader("Content-Type", "text/event-stream");
            xhr.addEventListener('readyStateChange',function(){
                if(xhr.readyState === 4){
                    self.postMessage(xhr.responseText);
                }
            });
            xhr.send();

    }

});

ajaxcontent.htm

content from external page

1 个答案:

答案 0 :(得分:-1)

CORS错误意味着,您正在向其他域请求,而其他域不允许跨域请求。尝试向您的域请求。其他域可以允许某些标头或某些请求方法类型(POST,DELETE, GET,PUT),允许从所有域或某些域进行访问。

如果您不同意我的回答,请解释原因。