通过ajax访问龙卷风中的cookie调用烧瓶

时间:2012-02-29 14:42:04

标签: javascript jquery ajax flask tornado

概述我有一个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吗?

1 个答案:

答案 0 :(得分:2)

http://code.google.com/p/jquery-jsonp/wiki/APIDocumentation

从我的研究看来,跨域ajax调用不要在请求标头中发送cookie信息,使用上面的库允许解决方法。

请注意,这与

类似

Cookie Access over JSONP

此外,JSONP响应必须包含在提供的回调GET参数中,否则会抛出错误。

Uncaught SyntaxError: Unexpected token :

E.g。

http://127.0.0.1:8888/chat/get_messages?callback=jsonp

因子效应

jsonp(
    {
        'data': '1',
        'result': true 
    }
)