ここでは、拡張子のbackground.htmlで実行されるコードを示します。クロム拡張子の中からチャンネルgoogleアプリエンジンを使用
function onLoad()
{
var path="http://localhost:8082/index.htm?key=1234";
xhr.open('get', path, false);
xhr.send();
token=xhr.responseText;
caughtMsg=token+" *** ";
var channel = new goog.appengine.Channel(token);
var handler = {
'onopen': function(){caughtMsg+=" *** open";},
'onmessage': onMessage,
'onerror': function(e){caughtMsg+=" *** err "+e.description+" "+e.code},
'onclose': function(){caughtMsg+=" *** close";}
};
var socket = channel.open(handler);
socket.onmessage = onMessage;
}
チャネルを作成してトークンを返すローカルホストサーバースクリプト(Pythonで)とやりとりします。トークンを使用してクライアント側にチャネルオブジェクトを作成します。 代わりに、私は、集約応答から取得することです:
チャネル-354645736から1234近い401 *トークン+ * errが無効
私が確立するAJAXを使用していない(拡張範囲外でそれを行うとき接続)それは魅力のように動作します。
ここで私は迷っていますか?
localhostが有効なトークンを返していますか? – abraham
私はトークンが有効であると確信しています。私が書いたように、クロム拡張コンテキストにないトークンを作成し、ajaxを使用しないとき(チャンネルapiの正式なドキュメントアドバイスのようにして)、うまくいきます。 – shayuna
拡張機能で生成されたトークンを取り出し、拡張機能コンテキスト外で動作することを確認してください。 – abraham