在chrome扩展中使用google应用引擎频道

2024-10-03 11:14:05 发布

您现在位置:Python中文网/ 问答频道 /正文

下面是在扩展中运行的代码背景.html. 在

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*错误无效+token 401*关闭

当我在扩展范围之外(不使用ajax建立连接)进行操作时,它就像一个魅力。在

我在哪里迷路了?在


Tags: path代码脚本tokenvarchannelfunctionsocket
1条回答
网友
1楼 · 发布于 2024-10-03 11:14:05

正如我从您的评论中看到的,您在本地开发系统上测试channelapi时遇到了问题。在

当我下载频道.js(而不是使用http://*。appspot.com//u ah/channel/jsapi)在背景脚本上使用了本地副本

<script type="text/javascript" src="/lib/channel.js"></script>

在频道.js,更改行定义

^{pr2}$

表示您的本地环境(appengine testserver的端口)

另外,你发送给你的xhr.打开在我的情况下,必须在你的舱单“许可”部分

"permissions":
  [
    ...,
    "http://localhost:8080/"
  ]

本地appengine testserver生成的令牌与livesystem中的令牌不同,因此不可能将两者混合使用。在

相关问题 更多 >