Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jqueryajax可以在mobilesafari上工作,但不能在UIWebView上工作?_Javascript_Jquery_Ios_Ajax_Uiwebview - Fatal编程技术网

Javascript jqueryajax可以在mobilesafari上工作,但不能在UIWebView上工作?

Javascript jqueryajax可以在mobilesafari上工作,但不能在UIWebView上工作?,javascript,jquery,ios,ajax,uiwebview,Javascript,Jquery,Ios,Ajax,Uiwebview,我有一个基本的jqueryajax函数,可以让用户通过UIWebView登录。但是,由于某些原因,当它位于UIWebView中时,它将返回空白。它在移动safari和我的电脑上的chrome和firefox中运行良好 这是我的密码: $("#login_button").live('click',function() { var serializeme = $("#login_form").serialize(); alert(serializeme);

我有一个基本的jqueryajax函数,可以让用户通过UIWebView登录。但是,由于某些原因,当它位于UIWebView中时,它将返回空白。它在移动safari和我的电脑上的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
仅在警报中返回空白

请帮忙


附言:如果你想尝试登录,这个应用在应用商店中被称为“Dudles”(它是免费的)。您将从警报中收到一条空白消息。

您也可以发布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];
            });
        }
    });
});

尝试使用async:true发送ajax请求,如下所示:

$("#login_button").live('click',function() {
    var serializeme = $("#login_form").serialize();
    alert(serializeme);
    $.ajax({
        type: "POST",
        async:true,
        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");
            }
         }
    });
});

嗨,你解决过这个问题吗?我也有同样的问题,但似乎什么都不管用。我也有同样的问题。我尝试过使用zepto和jquery,也尝试过使用一个普通的javascript来执行XHR和调用回调。一切都是徒劳的。然后我尝试使async:false,即使ajax同步,这是有效的。我在成功回调中得到了响应。但我希望它是异步的,否则页面上的所有内容都将被卡住,除非响应已经到达。有人知道吗?我在我的案子里找到了问题所在。基本上,我使用链接重定向并将我的数据附加到Obj-C的URL中来捕获数据并执行一些操作。在这两者之间,我调用了jQueryAjax方法,我想在它从Obj-C返回之前会调用它。我使用JSBridge来解决我的问题。Ajax现在可以正常工作了!