jQuery AJAX适用于移动Safari,但不适用于UIWebView?

时间:2011-12-11 14:14:32

标签: javascript jquery ios ajax uiwebview

我有一个基本的jQuery ajax函数,可以通过UIWebView登录用户。但是,由于某种原因,它在UIWebView中返回空白。它适用于移动游猎,以及我的计算机上的chrome和firefox。

这是我的代码:

$("#login_button").live('click',function() {
        var serializeme = $("#login_form").serialize();
        alert(serializeme);
        $.ajax({
            type: "POST",
            url: "http://domain/location/process_login.php",
            data: serializeme,
             success: function(theRetrievedData) {
                var thePlace = theRetrievedData.indexOf("?!?success?!?");
                if (thePlace != -1) {
                    var theArray = theRetrievedData.split("?!?success?!?");
                    var theUrl = theArray[1];
                    $('#content').fadeOut(500);
                    setTimeout( function() {window.location = theUrl;}, 500 );
                } else {
                    alert(theRetrievedData);
                    alert("no bueno");
                }
             }
        });
    });

theRetrievedData只会在提醒时返回空白。

请帮忙!

PS:如果您想尝试登录,该应用程序在应用程序商店中称为“Dudles”(它是免费的)。您将收到来自警报的空白消息。

1 个答案:

答案 0 :(得分:5)

你也可以发布你的PHP代码吗?

我重构了你写的代码,我将如何编写代码,看看我是否能发现任何错误,而且似乎没有任何错误。以下是我到目前为止的情况:

$(document.body).on('click', '#login_button', function () {
    $.ajax({
        type: "POST",
        url: "http://domain/location/process_login.php",
        data: $(this).closest('form').serialize(),
        success: function (response) {
            var delimiter = "?!?success?!?";
            var isSuccessful = response.indexOf(delimiter) !== -1;

            if (!isSuccessful) {
                // handle error
                return;
            }

            $('#content').fadeOut(500, function () {
                location = response.split(delimiter)[1];
            });
        }
    });
});