websocket 跨域问题
服务端代码
.......
class WebSocketHandler(tornado.websocket.WebSocketHandler):
def open(self):
self.write_message('x')
.......
客户端 为一段js
var wsUpdater = {
socket: null,
start: function(){
if ("WebSocket" in window) {
wsUpdater.socket = new WebSocket("ws://xx/websocket");
}
else {
wsUpdater.socket = new MozWebSocket("ws://xx/websocket");
}
wsUpdater.socket.onmessage = function(event) {
document.write(event.data)
};
}
};
wsUpdater.start();
场景是在任意网站加载这段js代码,
显示430
Cross origin websockets not allowed
我百度的资料上说websocket 可以跨域啊。为什么会这样? 如何解决呢?还望指点一二
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
Tornado 4.0
可以重写check_origin
方法或者指定允许的域名
tornado 3.0
没有提供类似的方法,可以重写header
文档 check_origin
握手后在头里加access-control-allow-origin:*