首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Firefox OS打包的应用程序和XMLHttpRequests

Firefox OS打包的应用程序和XMLHttpRequests
EN

Stack Overflow用户
提问于 2012-12-14 13:10:21
回答 4查看 3.2K关注 0票数 3

我一直在研究Firefox OS的套装应用程序,我依赖模拟器,因为我没有在设备上构建操作系统。我在处理XHR请求时遇到了问题,我不确定这个问题是因为我忽略了设置,还是模拟器有问题。

我对文档的阅读表明,添加network-http的权限应该足以向web服务发出XHR请求。我还在源代码中看到了systemXHR权限。两个我都试过了,但到目前为止还没有,joy。我正在使用Firefox for OS X的模拟器,我的清单如下所示:

清单:

代码语言:javascript
复制
{
  "version": "0.1",
  "name": "Hello World",
  "description": "A hello world app.",
  "launch_path": "/app/index.html",
  "icons": {
    "16": "/app/img/icons/mortar-16.png",
    "48": "/app/img/icons/mortar-48.png",
    "128": "/app/img/icons/mortar-128.png"
  },
  "installs_allowed_from": ["*"],
  "permissions": {
    "systemXHR": {},
    "network-http": {},
    "network-tcp": {}
  },
  "type": "privileged"
}

已经回答了一个similar question,但我认为答案可能是针对web应用程序的,而不是打包的应用程序,一个例子无论如何都会有帮助。

我是否遗漏了一些明显的东西,是模拟器坏了,还是打包的应用程序需要CORS?

EN

回答 4

Stack Overflow用户

发布于 2012-12-14 23:47:23

请注意,要使用systemXHR权限,您还需要在创建请求对象时传递一个特殊参数,例如

代码语言:javascript
复制
var xhr = new XMLHttpRequest({mozSystem: true});
票数 7
EN

Stack Overflow用户

发布于 2013-09-25 19:02:23

对于Backbone或其他在幕后使用JQuery $.ajax的Javascript框架,请使用:

代码语言:javascript
复制
$.ajaxSetup( {
    xhr: function() {return new window.XMLHttpRequest({mozSystem: true});}
});

我不认为你需要使用CORS。我的应用程序在没有CORS的模拟器中工作正常,但如果在本地服务器上启动,则无法调用远程REST服务器。

请注意,如果您忘记设置

dataType:“文本”

对于某些$.ajax调用(例如,load html template),您可以获得XMLDocument作为结果,而桌面浏览器则返回string。

票数 2
EN

Stack Overflow用户

发布于 2013-03-06 00:05:02

看看Rob Nyman样板文件,他有一个工作的XHR演示

https://github.com/robnyman/Firefox-OS-Boilerplate-App

http://robnyman.github.com/Firefox-OS-Boilerplate-App/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13873025

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档