ajax - 在 Chrome 打包应用中通过 XHR 加载本地内容

标签 ajax google-chrome xmlhttprequest google-chrome-app

我正在尝试加载我使用 Backbone 构建的 Web 应用程序,它会提取本地存储的 JSON 和 HTML 模板文件。我想知道 Chrome 打包的应用程序是否可以通过使用某种“get”/ajax 请求来加载这些文件?

目前我得到这个......

OPTIONS chrome-extension://fibpcbellfjkmapljkjdlpgencmekhco/templates/templates.html Cannot make any requests from null. jquery.min.js:2
XMLHttpRequest cannot load chrome-extension://fibpcbellfjkmapljkjdlpgencmekhco/templates/templates.html. Cannot make any requests from null.

我找不到有关如何执行此操作的任何真实信息,因此非常感谢!

最佳答案

是的,这是完全可能的,而且很容易。这是一个工作示例。尝试从这个开始,确认它有效,然后添加回您自己的代码。如果您遇到障碍并提出比 XHR 是否适用于打包应用程序更具体的问题,您可能想提出一个新问题。

list .json:

{
  "name": "SO 15977151 for EggCup",
  "description": "Demonstrates local XHR",
  "manifest_version" : 2,
  "version" : "0.1",
  "app" : {
    "background" : {
      "scripts" : ["background.js"]
    }
  },
  "permissions" : []
}

背景.js:
chrome.app.runtime.onLaunched.addListener(function() {
  chrome.app.window.create("window.html",
    { bounds: { width: 600, height: 400 }});
});

窗口.html:
<html>
<body>
  <div>The content is "<span id="content"/>"</div>
  <script src="main.js"></script>
</body>
</html>

主要.js:
function requestListener() {
  document.querySelector("#content").innerHTML = this.responseText;
};

onload = function() {
  var request = new XMLHttpRequest();
  request.onload = requestListener;
  request.open("GET", "content.txt", true);
  request.send();
};

内容.txt:
Hello, world!

关于ajax - 在 Chrome 打包应用中通过 XHR 加载本地内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15977151/

相关文章:

apache - 浏览器 (Chrome) 不缓存来自 CloudFront 的 Assets

javascript - 使用 jQuery 拖动将链接拖动到浏览器

grails - grails从 Controller 返回xml字符串

javascript - PHP XmlHttpRequest 错误与简单的待办事项列表

ajax - 无法让 jQuery Ajax 解析 JSON Web 服务结果

javascript - 更改事件的动态输入复选框

javascript - 使用 Backbone 和 Node 将模型保存到服务器

php - 如何在MySQL中对json数据进行编码以供数据库存储?

javascript - Chrome.webRequest API - requestBody 始终未定义

javascript - IE 中的 Ajax 异步 - 错误 "The Data Necessary to Complete This Operation is Not Yet Available"