2011-12-02 15 views
2

DjangoのセッションIDクッキーに間違った値を送信するgetJSONに問題がありました。jQuery getJSONとDjangoが間違ったセッションIDクッキーを送信

私はポート8000​​上で実行されているAPIを持っています。このURLにはhttp://localhost:8000/api/accounts/bannerがあります。ユーザーがログインしている場合はJSONドキュメントを返し、そうでなければ404コードを返します。私が直接Webブラウザ経由でアクセスするときにAPIは問題なく動作しますが、私は次のコードを実行し、ポート8888で実行しているクライアントアプリがあります、ここで

$(function() { 

    window.APIConfig = { 
    providerURL: "http://localhost:8000/", 
    endpoint: "api/accounts/banner", 
    } 

    callback = function(data) { 
    alert(data); 
    } 

    $.getJSON(
    APIConfig.providerURL + APIConfig.endpoint + "?callback=?", 
    callback 
) 
}); 

が、私は404応答を取得を要求そのためgetJSON sendsには、Djangoが要求するsessionidクッキーに間違った値が含まれています。

Cookie: csrftoken=42f709f871a99b8c514dc70c68418a1f; sessionid=958605eefdb46c516b101f5f5893474a 
が、AJAXリクエストがこれを送信します:私は、URLにアクセスする際のリクエストヘッダは直接ある

Set-Cookie:sessionid=c56f37c9dcd8d699f949c488163ccf4c; expires=Fri, 16-Dec-2011 22:52:39 GMT; Max-Age=1209600; Path=/ 

多くはである何、サーバーの応答は、新しいクッキーが含まれています

URLに直接アクセスすると、ブラウザにも404が表示されます。

なぜAJAXは別のCookieを送信しますか?その原因はどこですか?

答えて

0

両方のアプリ(ポート8000​​と8888)がsessionidというクッキーを設定していて、どちらもDjangoアプリであることは明らかです。 AJAXはリモートドメインのクッキー値をロードしてからリクエストを送信しますが、設定したいくつかの追加クッキーが実際に送信されていることがわかりますが、既に試しているクッキーの値があればその値を無視し、既に持っている値に固執します。それは本当に問題です。

私はこれを別の質問で適切に尋ねます。

関連する問題