Tôi đang sử dụng API kênh trong tiện ích của Chrome.Tại sao API kênh Google App Engine (jsapi) không tải trong tiện ích của Chrome?
Trong Google App Engine Channel API Javascript Reference (Python) trang nó nói rằng
Include the following in your html page before any JavaScript code that refers to it:
<script type="text/javascript" src="/_ah/channel/jsapi"></script>
Vì vậy, tôi đặt rằng trong tiêu đề của tập tin options.html tôi:
<html>
<head>
<title>Extension Options</title>
<script type="text/javascript" src="/_ah/channel/jsapi"></script>
</head>
nhưng Chrome ném jsapiFailed to load resource
lỗi. Tôi đang làm gì sai?
Cập nhật
Như mỗi câu trả lời Moishe của tôi cập nhật các cuộc gọi đến jsapi như thế này:
<head>
<title>Extension Options</title>
<!-- this does not work because it is local
<script type="text/javascript" src="/_ah/channel/jsapi"></script>
-->
<script type="text/javascript" src="https://talkgadget.google.com/talkgadget/channel.js"></script>
</head>
Cập nhật
tôi thêm onopen
và các tài sản khác. Bây giờ tôi nhận được thông báo onopen
nhưng tôi không nhận được cảnh báo evt.data
. Tôi đang làm gì sai?
<html>
<head>
<title>Extension Options</title>
<!-- this does not work because it is local url
<script type="text/javascript" src="/_ah/channel/jsapi"></script>
-->
<script type="text/javascript" src="https://talkgadget.google.com/talkgadget/channel.js"></script>
</head>
<body>
<p>Enter your gmail address:</p>
<textarea id="getEmail" style="margin-bottom: 4px; width: 250px; height: 20px">
</textarea><br />
<button id="save">Save</button>
<!--<button id="save">Clear</button>-->
<script>
document.getElementById("getEmail").placeholder = "your gmail address" ;
//save entered gmail address
document.getElementById("save").addEventListener
(
"click",
function()
{
var userEmail = document.getElementById("getEmail").value;
var formData = new FormData();
formData.append("extension_user", userEmail);
alert("after formData.append")
var channel;
var socket;
var handler =
{
onopen: function() { alert("onopen") },
onerror: function() { alert("onerror") },
onclose: function() { alert("onclose") },
onmessage:
function (evt)
{
//evt.data will be what the server sends in channel.send_message
console.log("evt.data received from authhandler: " + evt.data);
alert("evt.data is: " + evt.data)
}
};
var xhr = new XMLHttpRequest();
//changed to lowercase
xhr.onreadystatechange = function()
{
//alert("xhr.onReadyStateChange")
//error handling etc not included
if (xhr.readyState == 4 && xhr.status == 200)
{
token = xhr.responseText;
alert("token: " + token)
channel = new goog.appengine.Channel(token);
socket = channel.open(handler);
}
};
xhr.open("POST", "http://ting-1.appspot.com/authsender", true);
xhr.send(formData);
console.log("formData sent to authsender: " + formData);
}, false
)
</script>
</body>
</html>
Đây có phải là máy chủ dev_appserver hoặc đang được sản xuất không? Bạn có thể cung cấp bất kỳ chi tiết nào cho tab "Mạng" trong các công cụ dành cho Chrome không? –
Sản phẩm này đang được sản xuất. Đầu tiên không có gì trong tab "Mạng"; sau đó tôi tải lại trang theo hướng dẫn và tôi thấy 2 mục: options.html và jsapi: name: options.html; Phương thức: GET; Trạng thái: (từ bộ nhớ cache); Loại: văn bản/html; Kích thước: (từ bộ nhớ cache); Thời gian: 3ms và 'jsapi/_ah/channel; GET, (thất bại); chưa xác định; 30B; 5ms' Cảm ơn! – Zeynel
Bạn có phiền khi nói cho bạn biết về appid của bạn không? Điều gì sẽ xảy ra nếu bạn cố điều hướng trực tiếp đến "http://your-app-id.appspot.com/_ah/channel/jsapi"? –