javascript - 来自 Chrome 扩展的跨源 XMLHttpRequest 返回状态 0

标签 javascript google-chrome-extension xmlhttprequest-states

我正在编写一个 Chrome 扩展程序,它需要从另一个站点加载一些数据。根据我的研究,我相信我应该使用 XMLHttpRequest 来实现此目的,但它会为我尝试的每个网站返回 responseText=""和 status=0 。我传递给 JavaScript 的 URL 很好;我已经尝试过

http://www.google.com

http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.quotes%20where%20symbol%20in%20(%22MSFT%22) &env=store://datatables.org/alltableswithkeys

我在做一些无知/愚蠢的事情吗?我相信它具有 list 中的权限,但我现在拥有的应该允许这两个网站。我在 JavaScript 控制台中没有看到任何错误。

list :

{
  "manifest_version": 2,

  "name": "nnnn",
  "description": "nnnn",
  "version": "1.0",

  "browser_action": {
    "default_icon": "icon.png",
    "default_popup": "popup.html"
  },
  "permissions": [
    "storage",
    "http://*.query.yahooapis.com/*",
    "http://*/*",
    "https://*/*"    
  ]
}

JavaScript 函数:

function getSite(queryUrl) {
  var request = new XMLHttpRequest();
  request.open("GET", queryUrl, true);
  console.log(queryUrl);
  request.onreadystatechange = function () {
    console.log(request);
   if (request.readyState == 4) {
      if (request.status == 200) {
        console.log(request.responseText);
      } else {
        console.log('Unable to resolve address');
      }
    }
  };
  request.send(null);
}

编辑: http://developer.chrome.com/extensions/xhr.html 这几乎是我一直遵循的指导,但显然有些事情超出了我的理解。

最佳答案

我不认为这是与权限相关的问题。如果是,控制台中将会出现一条错误消息,提示权限问题。我认为您的 XMLHttpRequest 有问题。确保您传递给函数的 queryUrl 是正确的。

您可以使用Fiddler检查您的请求有什么问题。

关于javascript - 来自 Chrome 扩展的跨源 XMLHttpRequest 返回状态 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14551200/

相关文章:

javascript - 错误 请求的资源上不存在 'Access-Control-Allow-Origin' header

javascript - 无法使用 XMLHttpRequest 执行 php 文件

javascript - 在 jquery 中使用 css 属性动态设置宽度值?

javascript - 根据最终 URL 路径段将类添加到列表项

javascript - 在 Chrome 扩展程序中捕获 URL

javascript - 始终显示 page_action 图标

javascript - XMLHttpRequest 似乎没有做任何事情

javascript - Firebase 在 auth "loading"完成时监听

javascript - 我的 JavaScript 代码没有渲染我的谷歌地图

javascript - 使用 Chrome 扩展,如何使用长期连接(端口)将消息从后台脚本传递到内容脚本?