Ho problemi con Chrome su iPad/iPhone con quello che pensavo fosse un'attività abbastanza semplice e funzioni su Chrome Desktop (Mac & PC) e Safari su iPad/iPhone.iPad/iPhone Chrome - Auth cookie non impostato su jquery post (ajax) - MVC 3
ho il seguente jquery sulla mia pagina:..
$ ("# login-login-button") clicca (function() { var username = $ ("# Username") val() .; var password = $ ("# Password") val();
$("#login-loading-icon").show();
$.post("/login", { username: username, password: password }, function (data, response) {
if (response == "success") {
if (data.IsValid) {
window.location.href = "/profile";
}
else {
$("#login-error-message").html(data.ErrorMessage);
$("#login-loading-icon").hide();
}
}
else {
alert("An error occurred, please try again.");
}
});
});
e l'azione di controllo è il codice seguente aspetto:
[HttpPost]
public JsonResult Index(string username, string password)
{
AjaxResponseModel ajaxResponseModel = new AjaxResponseModel();
User user = UserDAL.Select(username, Hash.MD5(password));
if (user != null)
{
if (!user.IsVerified.Value)
{
ajaxResponseModel.AddErrorMessage("Account not verified.");
}
else if (!user.IsActive.Value)
{
ajaxResponseModel.AddErrorMessage("Your account is not active.");
}
else
{
FormsAuthentication.SetAuthCookie(username, false);
}
}
else
{
ajaxResponseModel.AddErrorMessage("Login details incorrect.");
}
return Json(ajaxResponseModel);
}
ho provato a installare l'Auth Cookie via un re non-ajax ricerca ma non funziona neanche.
E ho scoperto che sull'iPad/iPhone se utilizzo il "Richiedi sito desktop" nel menu di Chrome il problema scompare, tuttavia non vi è alcun concetto di mobile/desktop sul mio sito a questo punto, ovvero cosa Chrome ottiene la prima volta dovrebbe essere il sito desktop ...
Da allora ho scoperto che si tratta di un bug in .Net e dovrebbe essere risolto nella versione 4.5, tuttavia la soluzione di @Froyke è ancora una soluzione rapida e semplice. – Rob