firefox OS应用程序,Firefox OS应用程序中的CORS

时间:2014-08-20 05:47:06

标签: ajax xmlhttprequest cors firefox-os

我一直在firefox OS中开发web-app(非托管应用)。 我想使用XMLHttp请求访问网站xml / JSON数据。但由于CORS不允许访问数据,因此会出错。我知道要添加' Access-Control-Allow-Origin'网站中的标头和启用CORS可能会导致安全问题。 但是他们是否有通过XMLHttp请求访问数据馈送的替代方法?

2 个答案:

答案 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');
  }
}