Расширение кросс-домена AJAX GET Chrome не будет работать! - PullRequest
0 голосов
/ 21 апреля 2011

Я не могу заставить это работать - я следую за фактическими документами, а также за этим примером:

http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/docs/examples/howto/contentscript_xhr/

Я просто пытаюсь получить данные json, отформатированные на экране браузера следующим образом: {"name": "value"} , из URL, но получить нулевое значение, возвращаемое, Я предупреждаю.

Мой манифест.json:

{
  "name": "Chrome Extension",
  "version": "1.0",
  "description": "Does a GET request cross-domain.",
  "background_page": "plugin.html",
  "permissions": [
    "tabs",
    "http://*"
  ],
  "browser_action": {
    "default_title": "",
    "default_icon": "icon.ico"
  }
}

Мой plugin.html:

<html>
<head>
    <script>
        function fetchData(callback) {
            var req = new XMLHttpRequest();
            req.onreadystatechange = function (data) {
                if (req.readyState == 4) {
                    if (req.status == 200) {
                        callback(req.responseText);
                    } else {
                        callback(null);
                    }
                }
            };
            var url = 'http://foo/bar.php';
            req.open('GET', url, true);
            req.send();
        };

        function onRequest(request, sender, callback) {
            if (request.action == 'fetchData') {
                fetchData(callback);
            }
        };

        chrome.extension.onRequest.addListener(onRequest);

        chrome.browserAction.onClicked.addListener(function(tab) {
            chrome.tabs.create({url: 'index.html'});
        });
    </script>
</head>
</html>

Мой index.html:

<!DOCTYPE HTML>
<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
    </head>
        <body>
             <script type="text/javascript">
                  function onReturn(data) {
                   alert('Data ' + data);
                };
                  chrome.extension.sendRequest({'action' : 'fetchData'}, onReturn);
              </script>
        </body>
</html>

1 Ответ

2 голосов
/ 21 апреля 2011
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...