我已将所需的元标记添加到我的网络应用程序中,以便可以从跳板在iPhone上启动,没有任何Safari元素(地址栏等)。 但是,我的登录页面通过JS工作,响应以JSON形式返回。
在Safari中,当未作为Web应用程序启动时,重定向工作正常(使用window.location)。 当作为Web应用程序启动时,重定向似乎无法正常工作。屏幕将刷新但位于同一页面上。
这是网络应用的限制还是(我怀疑)我做错了吗?
这是响应ajax帖子的代码
genericPost: function (f, ajaxLoad) {
if (ajaxLoad == undefined)
ajaxLoad = true;
var form = $(f);
var data = form.serialize();
var action = form.attr("action");
$.ajax({
type: 'POST',
url: action,
data: data,
success: function (response) {
if (response.worked) {
//navigate to the next required page
//Notify.showMessage(response.message);
if (response.redirect) {
if (ajaxLoad) {
Notify.showMessage(response.message, "ok");
var back = response.direction == "back";
$.mobile.changePage(response.redirect, "slide", back, true);
}
else {
window.location = response.redirect;
}
}
else {
Notify.showMessage(response.message, "ok");
}
}
else {
Notify.showMessage(response.message, "error");
}
},
dataType: "json",
error: function () {
Notify.showMessage("Could not submit your form at the time. Please try again. Please try again", "error");
}
});
}
由于
答案 0 :(得分:0)
好的,所以window.location是一个红鲱鱼。 问题是ios似乎在运行全屏时发送了一个不同的用户代理字符串,这是IIS不喜欢的。 因此,IIS决定此浏览器不支持cookie或任何其他内容,因此身份验证令牌失败。
通过在我的项目和.browser文件中添加app_devices文件夹来解决这个问题。