【问题标题】:Accessing cookies in tornado over ajax calls in flask通过烧瓶中的ajax调用访问龙卷风中的cookie
【发布时间】:2012-03-02 01:52:04
【问题描述】:

作为概述,我有一个用作主网站的 Flask 应用程序和一个用作网站聊天服务器的 Tornado 应用程序,每个应用程序都在单独的端口上独立运行。

聊天应用直接从flask中读取会话信息,

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 的cookie 而不是Ajax 请求吗?

【问题讨论】:

    标签: javascript jquery ajax flask tornado


    【解决方案1】:

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

    根据我的研究,跨域 ajax 调用似乎不会在请求标头中发送 cookie 信息,使用上述库允许的解决方法。

    注意这类似于

    Cookie Access over JSONP

    此外,JSONP 响应必须包装在提供的回调 GET 参数中发送,否则将引发错误。

    Uncaught SyntaxError: Unexpected token :

    例如

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

    回复

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-08-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-09
      • 1970-01-01
      相关资源
      最近更新 更多