Я пишу расширение Chrome, которое должно загрузить некоторые данные с другого сайта. Из моих исследований я считаю, что для этого мне следует использовать XMLHttpRequest, но он возвращает responseText = "" и status = 0 для каждого сайта, который я пробую. URL-адреса, которые я передаю в javascript, хороши; я пытался

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);
}

< Сильный > EDIT : http://developer.chrome.com/extensions/xhr.html Это в значительной степени то, что я следовал за руководством, но, очевидно, что-то пошло у меня над головой.

0
user64208 27 Янв 2013 в 23:19

2 ответа

Лучший ответ

Я сделал что-то невежественное и получил форму отправки, которая заставляла страницу обновляться и отбрасывать предыдущий запрос XMLHttpRequest, когда он закончится

2
user64208 30 Янв 2013 в 00:18

Я не верю, что это проблема, связанная с разрешением. Если бы это было так, в консоли появилось бы сообщение об ошибке, сообщающее о проблеме с правами доступа. Я думаю, что-то не так с вашим XMLHttpRequest. Убедитесь, что queryUrl, который вы передаете в функцию, верен.

Вы можете использовать Fiddler, чтобы узнать, что не так с вашим запросом.

2
Uzair Farooq 27 Янв 2013 в 20:34