Расширение Chrome JQuery POST обратный вызов - PullRequest
0 голосов
/ 31 августа 2011

Мне удалось вызвать JQuery POST из popup.html в Google Extensions. Однако функции обратного вызова с успехом или ошибкой не были вызваны. Я искал на стеке потока, и кажется, что это из-за домена.

В качестве решения я попытался отправить chrome.extension.sendRequest на страницу background.html, а фоновая страница вместо этого выполнила сообщение. Однако слушатель на странице background.html, похоже, не получает запрос.

В popup.html у меня есть

chrome.extension.sendRequest({test:'test123'}, function(response) {
    alert('hello')
}

В background.html у меня есть

chrome.extension.onRequest.addListener(
    function(request, sender, resndResponse) {
        console.log(request)
    }
)

Почему это не работает? Есть ли другое решение?

Ответы [ 2 ]

1 голос
/ 31 августа 2011

Это не работает, потому что оповещения не являются хорошим способом отладки расширений.Замените все оповещения на console.log, особенно в всплывающем окне, где оно просто тихо останавливает выполнение остального кода.

Всплывающие и фоновые страницы имеют абсолютно одинаковые привилегии, поэтому все, что работает или не работает во всплывающем окне, будет вести себя точното же самое в фоновой странице.

Итак, начните с удаления всех предупреждений и убедитесь, что вы объявили разрешения домена в манифесте:

"permissions": [
  "http://destination.com/"
],

Этого должно быть достаточно, учитывая остальную часть кодаправильно.

0 голосов
/ 01 сентября 2011

Спасибо за помощь. Очевидно, я был глуп, и причина, по которой $.post() не вызывал функцию успеха, заключалась в том, что у меня был торнадо, отправляющий обратно строку вместо объекта JSON ...

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