0

Sencha touch 2.0 を使用して Web モバイル プロジェクトを開発しています。

次のように ajax リクエストを作成しました。

Ext.Ajax.request({
  url: myUrl,
  params: {
    format: 'xml',
    callback: 'success'
  },
  method :'POST',
  xmlData :MyXMLData
  proxy:{
    type: 'ajax',
    reader:{
      type: 'xml',
      rootProperty:'ns2:user'
    }
  },

サーバー側では、次のヘッダーが設定されています。

header("Access-Control-Allow-Origin: *");

サーバーは XML 応答と Cookie を返します

Chrome のデバッグ ツールを使用すると、さまざまな Set-Cookie ヘッダーが返されることがわかります

問題は、他のリクエストで設定するためにこれらの Cookie を取得するにはどうすればよいですか??

ノート:

response.getAllResponseHeaders() を試しましたが、これは Set-Cookies では機能しません。

4

2 に答える 2

3

ここで答えを見つけました:https://stackoverflow.com/a/7189502/1106877

残念ながら、Sencha フォーラムの回答では、これを行う方法に関するガイダンスはほとんど提供されていませんでした。Sencha Touch では、上記のリンクと同等の解決策は次のとおりです。

Ext.Ajax.request({
            url: 'http://myurl/log_user_in.json',
            params: { username: user, password: pass, app_id: id },
            withCredentials: true,
            useDefaultXhrHeader: false,
            method: "POST" });

また、Ajax を使用したスト​​ア プロキシでもうまく機能します。

withCredentials が true で、useDefaultXhreader が false であることを確認してください。これにより、ajax リクエストで、利用可能な Cookie を探し、設定し、リクエストすることができます。もちろん、これはすべて、サーバーが Cross Domain Ajax 呼び出し用にセットアップされていることを前提としています。

于 2012-07-24T15:18:27.147 に答える
0

私の知る限り、クロスドメイン AJAX 呼び出しを行うことで、別のドメインにあるサーバーに Cookie を送信できます。

    withCredentials : true,
    useDefaultXhrHeader : false,

set-Cookie の値はリクエスト ヘッダーとレスポンス ヘッダーで確認できますが、クライアントとサーバーが異なるサーバー上にある場合、JavaScript を介してアクセスすることはできません。

于 2013-10-10T09:14:03.497 に答える