PhoneGap でモバイル アプリを構築しています。いくつかの静的な HTML ページ (携帯電話にローカルに保存) を作成し、AJAX を使用してサーバーからデータを読み込もうとしました。
$( document ).bind( "mobileinit", function() {
$.support.cors = true;
$.mobile.allowCrossDomainPages = true;
});
$(document).ready(function () {
ajaxDeferred = $.ajax({
url: 'http://example.com/api/isAuthorized'
type: method,
data: parameters,
timeout: 40000
});
ajaxDeferred
.done(function(data) {
alert(data.result);
})
.fail(onFailHandler);
});
サーバー側には、このコードがあります
public ActionResult IsAuthorized()
{
FormsAuthentication.SetAuthCookie("shade", true);
return this.Json(
new
{
result = this.HttpContext.User.Identity.IsAuthenticated
},
JsonRequestBehavior.AllowGet
);
}
私が期待する:
- ユーザーが許可されていないため、最初の実行で「False」の結果を受け取ります
- SetAuthCookie により、2 回目の実行で「True」を受け取ります。
ブラウザで試してみると、期待どおりに動作します。しかし、私がモバイルアプリを実行しているものは何でも、クッキーが転送されていないように、常に False を受け取ります。
問題は、ユーザーを AJAX で正しくログインする方法です。それは可能ですか? ベストプラクティスとは? 理由は不明ですが、この単純なシナリオは PhoneGap のマニュアルではカバーされていません。