我一直在firefox OS中开发web-app(非托管应用)。 我想使用XMLHttp请求访问网站xml / JSON数据。但由于CORS不允许访问数据,因此会出错。我知道要添加' Access-Control-Allow-Origin'网站中的标头和启用CORS可能会导致安全问题。 但是他们是否有通过XMLHttp请求访问数据馈送的替代方法?
答案 0 :(得分:6)
首先更改您的清单以包含以下字段(人们忘记type
一个字段):
"type": "privileged",
"permissions": {
"systemXHR" : {}
}
其次,将所有JavaScript代码移动到单独的 JS文件。因为不允许在特权应用程序中使用内联标记。
第三次使用像raidendev这样的mozSystem构造函数说:
var xhr = new XMLHttpRequest({ mozSystem: true });
答案 1 :(得分:1)
要从Firefox OS应用程序执行跨域http请求,您需要在应用程序清单中设置权限systemXHR:
"permissions": {
"systemXHR" : {}
}
并创建XMLHttpRequest
,其中属性mozSystem设置为true
:
var xhr = new XMLHttpRequest({ mozSystem: true });
此外,对于XMLHttpRequest不适用的任何情况,您可以使用TCP Socket API。
var socket = navigator.mozTCPSocket.open('localhost', 80);
socket.ondata = function (event) {
if (typeof event.data === 'string') {
console.log('Get a string: ' + event.data);
} else {
console.log('Get a Uint8Array');
}
}