iPhone Web应用程序:Window.location似乎不起作用

时间:2011-07-29 13:14:51

标签: javascript iphone web-applications

我已将所需的元标记添加到我的网络应用程序中,以便可以从跳板在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");
        }
    });
}

由于

1 个答案:

答案 0 :(得分:0)

好的,所以window.location是一个红鲱鱼。 问题是ios似乎在运行全屏时发送了一个不同的用户代理字符串,这是IIS不喜欢的。 因此,IIS决定此浏览器不支持cookie或任何其他内容,因此身份验证令牌失败。

通过在我的项目和.browser文件中添加app_devices文件夹来解决这个问题。