概述我有一个Flask应用程序作为主要网站和一个Tornado应用程序作为网站的聊天服务器,每个应用程序独立运行在一个单独的端口上。
聊天应用程序直接从烧瓶中读取会话信息,
self.get_cookie(settings.SESSION_COOKIE_NAME)
我遇到的问题是,如果我通过浏览器访问聊天服务器会话将会读取,但会话不会使用Ajax调用。
聊天服务器提供Access-Control-Allow-Domain标头以允许跨域呼叫。
ajax很简单,
$.getJSON('http://127.0.0.1:8888', {'message': 'test'}, function(){});
Cookie域只设置为127.0.0.1
,并且不是仅限HTTP的Cookie。
我可以在浏览器127.0.0.1:8888
而不是Ajax请求中访问cookie吗?
答案 0 :(得分:2)
http://code.google.com/p/jquery-jsonp/wiki/APIDocumentation
从我的研究看来,跨域ajax调用不要在请求标头中发送cookie信息,使用上面的库允许解决方法。
请注意,这与
类似此外,JSONP响应必须包含在提供的回调GET参数中,否则会抛出错误。
Uncaught SyntaxError: Unexpected token :
E.g。
http://127.0.0.1:8888/chat/get_messages?callback=jsonp
因子效应
jsonp(
{
'data': '1',
'result': true
}
)