【问题标题】:Cross-Origin XMLHttpRequest from Chrome Extension Returning Status 0Chrome 扩展返回状态 0 的跨域 XMLHttpRequest
【发布时间】:2013-01-11 03:38:48
【问题描述】:

我正在编写一个 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

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

清单:

{
  "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 这几乎是我一直在寻求指导的内容,但显然有些事情超出了我的想象。

【问题讨论】:

    标签: javascript google-chrome-extension xmlhttprequest-states


    【解决方案1】:

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

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

    【讨论】:

    • 我 99% 确定传入的 queryUrl 没问题。感谢您提供有关 Fiddler 的提示,我会尝试一下。
    • @user64208:这完全是关于您的查询 URL。
    • 好的,所以我使用 Fiddler 来嗅探数据包,实际上我收到了一个 HTTP 200,其中包含我期望 yahooapi.com 查询的响应。问题似乎是 JavaScript XMLHttpRequest 无论出于何种原因都没有收到任何该数据包。有什么想法吗?
    【解决方案2】:

    我做了一些无知的事情,并且提交了一个表单,导致页面刷新并在之前的 XMLHttpRequest 完成时丢弃它

    【讨论】:

      猜你喜欢
      • 2011-06-08
      • 2012-03-14
      • 1970-01-01
      • 2012-04-01
      • 2016-04-24
      • 2016-08-28
      • 2014-09-01
      • 1970-01-01
      • 2015-03-22
      相关资源
      最近更新 更多