大多数页面都没有访问Ajax调用

时间:2017-08-24 19:30:35

标签: javascript jquery ajax cordova

这是一个非常奇怪的问题,但我会提供尽可能详细的信息。此Javascript函数位于单独的.js文件中,并引用到Cordova应用程序中的各种HTML页面。当一个具有2个参数:id,type的推送通知被接收到设备中时,执行一个名为LaunchFromNotif的函数,并将这两个参数作为参数传递。

function LaunchFromNotif(id, type) {
try {
    var ebyidurl = url + "ReturnEByID";
    var nbyidurl = url + "ReturnNByID";

    if (type != null) {
        if (type == "n") {
            $.ajax({
                type: 'GET',
                url: nbyidurl,
                data: { id: id },
                dataType: 'json',
                processdata: true,
                success: function (data) {
                    //code here
                },
                error: function (xhr, status, error) {
                    alert('Error: ' + error);
                }
            });
        } else if (type == "e") {
            $.ajax({
                type: 'GET',
                url: ebyidurl,
                data: { id: id },
                dataType: 'json',
                processdata: true,
                success: function (data) {
                    //code
                },
                error: function (xhr, status, error) {
                    alert('Error: ' + error);
                }
            });
        } else if (type == "a") {
            combined(id);
        }
    }
} catch (exception) {
    //window.location = "Warning2.html";
}
}

Combined(id)是具有2个Ajax调用的另一个函数。我一次又一次地使用,以确保第一个ajax调用在开始第二个之前完成。

function combined(id) {
alert("combined");
$.when(
    $.ajax({
        type: 'GET',
        url: nbyidurl,
        data: { id: id },
        dataType: 'json',
        processdata: true,
        success: function (data) {
            alert("success of first ajax");
        },
        error: function (xhr, status, error) {
            alert('Error 1: ' + error);
        }
    })

).then(function () {
    $.ajax({
        type: 'GET',
        url: Verifytempurl,
        data: { Username: localStorage.getItem('user') },
        success: function (data) {
            alert("success of second ajax");             

        },
        error: function (xhr, status, error) {
            alert('Error 2: ' + error);
        }
    });

});

问题是这只适用于一个HTML页面。在我尝试的其他3个页面中,它显示了“组合”警报,似乎永远不会访问Ajax调用。逻辑似乎有意义,特别是因为它在一个页面中处于正常工作状态。某些东西通常会出现什么问题?我只有很少的调试可能性,特别是因为这是一个Cordova应用程序并在移动设备上进行测试。

提前致谢!

0 个答案:

没有答案