2012-02-29 58 views
1

與概述一樣,我有一個Flask應用程序,它充當主網站和一個Tornado應用程序,用作網站的聊天服務器,每個應用程序獨立運行在獨立的端口上。在龍捲風上通過ajax調用燒瓶中的cookie訪問餅乾

聊天應用程序直接讀取燒瓶會話信息,

self.get_cookie(settings.SESSION_COOKIE_NAME)

,我有是,如果我通過瀏覽器訪問聊天服務器會話會讀,但使用Ajax調用的問題會議不會。

聊天服務器提供訪問控制允許域標頭以允許跨域調用。

阿賈克斯很簡單,

$.getJSON('http://127.0.0.1:8888', {'message': 'test'}, function(){});

的餅乾域名就是設置爲127.0.0.1,而不是一個HTTP cookie的唯一。

是否有任何特殊原因可以在我的瀏覽器中訪問該Cookie,其格式爲127.0.0.1:8888而不是Ajax請求?

回答

2

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 
    } 
)