我正在使用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", "*");
但我不行。 ..
请帮帮我吗?
提前致谢。
答案 0 :(得分:0)
我开始使用一个非常简单的网络服务器来提供遵循此文档的文件,并且它有效。原因是一些web浏览器(例如Safari)处理本地文件的方式与服务器的数据不同。
http://4pcbr.com/topic/staticme_simplest_web_server_for_serving_static_files