我在 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
);
}
我预计:
- 在第一次运行时收到“假”结果,因为用户未经授权
- 在第二次运行时收到“True”,因为 SetAuthCookie
当我在浏览器中尝试时,它按预期工作。但无论我运行移动应用程序,我总是收到 False,就像 cookie 没有被转移一样。
所以问题是如何使用 AJAX 正确登录用户,这可能吗?什么是最佳做法?由于未知原因,PhoneGap 手册并未涵盖这种简单的场景。