源文件:// Access-Control-Allow-Origin不允许使用WebWorker

时间:2014-03-11 09:30:25

标签: javascript xmlhttprequest web-worker

我正在使用PhoneGap和jQuery Mobile开发移动应用程序。 我正在使用XMLHttpRequest连接到我的Web Worker中的REST Web服务。

var url = "http://myurl.dyndns.org:9018/WebService/webresources/UsersWS/getUser";
    var params = '{"id":"' + 5 + '"}';
 var xhr;
    try {
        xhr = new XMLHttpRequest();
        xhr.open('POST', url, false);
        xhr.setRequestHeader('Access-Control-Allow-Origin', '*');
        xhr.onreadystatechange = function () {
            if (xhr.readyState == 4 && xhr.status == 200) {
                var result = JSON.parse(xhr.responseText);
                self.postMessage("PRUEBA: "+result.d);
            }
        }; 
        xhr.send(JSON.stringify(params));
    } catch (e) {
        self.postMessage('Error occured in XMLHttpRequest: ' + xhr.statusText + '  ReadyState: ' + xhr.readyState + ' Status:' + xhr.status + ' E: ' +e+' Msg:'+e.message);
    }

在Android版本4.3的三星Galaxy 3中,它可以使用,但在使用Android版本4.4.2的Nexus 7平板电脑中无效。 我收到这条消息:

"XMLHttpRequest cannot load http://myurl.dyndns.org:9018/WebService/webresources/UsersWS/getUser. Origin file:// is not allowed by Access-Control-Allow-Origin.", source:  (0)

我已经读过Nexus有Chrome浏览器,这有一些问题(参考:Origin null is not allowed by Access-Control-Allow-Origin),但我不知道我能做什么,我使用xhr.setRequestHeader("Access-Control-Allow-Origin", "*");但我不行。 ..

请帮帮我吗?

提前致谢。

1 个答案:

答案 0 :(得分:0)

我开始使用一个非常简单的网络服务器来提供遵循此文档的文件,并且它有效。原因是一些web浏览器(例如Safari)处理本地文件的方式与服务器的数据不同。

http://4pcbr.com/topic/staticme_simplest_web_server_for_serving_static_files