通过AJAX发送和接收| PhoneGap应用程序

时间:2014-05-05 10:28:08

标签: javascript jquery ajax jquery-mobile cordova

我正在使用jQuery Mobile 1.3.2开发PhoneGap应用程序& jQuery 2.0.3。我有一个带有用户名和密码的登录表单。有一个PHP接受POSTed变量并返回JSON编码数据以允许登录过程继续。

我使用以下JavaScript进行ajax登录。

document.addEventListener("deviceready", onDeviceReady, true);
function onDeviceReady() {
    $(function () {
        $("#login_form").submit(function() {
            var postData = $(this).serialize();
            $.ajax({
                type: "POST",               
                data: postData,
                url: "url of PHP file that takes in credentials and sends back json encoded response",              
                success: function(data){    
                    var login_data = JSON.parse(data);
                    if (login_data.success == "go") {
                        $.mobile.changePage("#page2", {transition:"slide", changeHash:false});                  
                    } else if (login_data.success == "no go") {
                        navigator.notification.alert("Email Not Found. Please Register.", function(){}, "Alert", "OK");
                    } else {    
                        navigator.notification.alert("Login Failed. Please Try Again.", function(){}, "Alert", "OK");       
                    }
                },
                error: function(xhr, status, error) {
                    var err = eval("(" + xhr.responseText + ")");
                    navigator.notification.alert(err.Message, function(){}, "Alert", "OK");
                }
            });         
            return false;
        });
    });
}

当通过同一个wifi路由器连接多个设备时,我遇到了问题。一个或另一个设备将连接,另一个将停止,偶尔会给出AJAX失败的消息。

搜索并询问同事我正在减少失败的原因。代码工作......孤立无援。当连接到两个不同的wifi路由器时使用两个设备时代码可以工作。

此时我最好的猜测是因为每个设备发送的信息几乎与路由器相同,然后返回响应,但不知道哪个设备返回响应,因为它们不是单独的标记(可能与他们各自的mac地址或分配的IP号码 - 不要笑得太厉害,我是网络菜鸟)。

关于可能导致此失败的原因的任何想法以及我可以如何测试和修复它的方法?

1 个答案:

答案 0 :(得分:0)

对于Web Host提供商来说,这是一个未知问题。尽管有十几个详细的请求,他们一直在阻止事情我总是被提到我自己的设备或自己的代码是如何错。

为自己设置一个VPS并进行更改 - 我有一个无需修改代码或设备的工作系统。

TIL我不喜欢那些通过指责别人来掩盖自己无能的人。