0

別のサイトからデータをロードする必要がある 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 これは私がガイダンスとしてフォローしてきたもののほとんどですが、どうやら何かが私の頭に浮かびました。

4

2 に答える 2

2

私はそれが許可関連の問題だとは思わない。その場合、権限の問題を通知するエラー メッセージがコンソールに表示されます。XMLHttpRequest に何か問題があると思います。queryUrl関数に渡すものが正しいことを確認してください。

Fiddlerを使用して、リクエストの何が問題なのかを確認できます。

于 2013-01-27T20:02:25.697 に答える
2

私は無知なことをして、ページが更新され、終了時に以前の XMLHttpRequest を破棄するフォームを送信しました

于 2013-01-28T19:49:02.523 に答える