ユーザーをサービス3.11経由でdrupalにログインするhtml5アプリを持っていますが、接続できません。
Chrome Postmanプラグインを使用して、期待どおりに接続できます。Postmanと私のコードの違いは、アプリからCookieセッションが渡されないことです。withCredential:trueを読んだところからセッションCookieを渡すことになっていますが、機能しませんか?
ログインとトークンの後に送信されるシステム/接続コードは次のとおりです。
jQuery.ajax({
type: "POST",
url: connectUrl,
xhrFields: {
withCredentials: true
},
success: function (result) {
dosomething();
},
error: function (result) {
dosomething();
},
beforeSend: function (xhr) {
xhr.setRequestHeader('X-CSRF-Token', Session.user_token);
},
});
この問題に遭遇した他の人のために、私は最終的に次のようにしてそれを解決することができました。 CORSが追加のOPTIONSリクエストのどこに追加するか、私たちが通過する資格情報を想定しています。
jQuery.support.cors = true;
jQuery.ajaxSetup({
xhrFields: {
withCredentials: true // Pass session cookie with requests
}
});