gpt4 book ai didi

javascript - 在 chrome 扩展中使用 channel google app engine

转载 作者:行者123 更新时间:2023-11-28 17:52:02 24 4
gpt4 key购买 nike

这是在扩展中运行的代码,在 background.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;

}

它与创建 channel 并返回 token 的本地主机服务器脚本(在 Python 中)交互。然后 token 用于在客户端创建 channel 对象。相反,我从汇总回复中得到的是:

channel-354645736-1234 * err invalid+token 401 * close

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

我哪里误入歧途了?

最佳答案

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

当我下载 channel.js(而不是使用 http://*.appspot.com/_ah/channel/jsapi)并在后台脚本上使用本地副本时,它对我有用

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

在 channel.js 中,更改行定义

goog.appengine.DevSocket.BASE_URL = "http://localhost:8080/_ah/channel/";

代表您的本地环境(appengine 测试服务器的端口)

此外,在我的例子中,您发送 xhr.open 的 URL 必须在您的 list “许可”部分

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

本地应用引擎测试服务器生成的 token 与实时系统中的 token 不同,因此不能将两者混用。

关于javascript - 在 chrome 扩展中使用 channel google app engine,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8277681/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com