jQuery ajax call randomly leading to timeout in ios application using Verizon network. Server side coding is implemented using .NET handler.

jQuery ajax call randomly leading to timeout in ios application using Verizon network. Server side coding is implemented using .NET handler.

the sample code is as below.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<head>
    <title>Untitled Page</title>
    <link href="css/jquery.mobile-1.3.0.css" rel="stylesheet" />
    <script src="js/jquery-1.9.1.min.js" type="text/javascript"></script>
    <script src="js/jquery-ui.js" type="text/javascript"></script>
    <script src="js/jquery.mobile-1.3.0.js" type="text/javascript"></script>
</head>
<body>
    <div data-role="page">
        <script type="text/javascript">
            var verizonStandardURL = "testURL=";
            $.ajaxpostJSON = function (url, sdata, func) {
                $.ajax(
            {
                url: url,
                type: "post",
                headers: { "cache-control": "no-cache" },
                dataType: "json",
                timeout: 60000,
                cache: false,
                data: sdata,
                async:true,
                success: function (result) {
                    func(result);
                },
                error: function (error, textStatus, jqXHR) {
                    if (textStatus == 'timeout') {
                        func(textStatus+" "+error.status)
                    }
                    else if (textStatus == 'error') {
                        func(textStatus + " " + error.status)
                    }
                    else if (textStatus == 'abort') {
                        func(textStatus + " " + error.status)
                    }
                    else if (textStatus == 'parsererror') {
                        func(textStatus + " " + error.status)
                    }
                    else {
                        func(error.status)
                    }
                    return;
                }
            });
            }

            function testNetwork(obj) {
                switch (obj.id) {
                    case "Save":
                        var myJSONobject = {
                            "Language": "en-US",
                            "DatabaseID": "111"
                        };
                        if (navigator.onLine) {
                            $.ajaxpostJSON(verizonStandardURL + "Save", myJSONobject, function (data) {
                                $("#Save").append(data);
                            });
                        }
                        break;
                    case "SyncOfflineWOCreate":
                        var myJSONobject = {
                            "Language": "en-US",
                            "DatabaseID": "111"
                        };
                        if (navigator.onLine) {
                            $.ajaxpostJSON(verizonStandardURL + "SyncOfflineWOCreate", myJSONobject, function (data) {
                                $("#SyncOfflineWOCreate").append(data);
                            });
                        }
                        break;
                    case "SaveOfflineCASValues":
                        var myJSONobject = {
                            "Language": "en-US",
                            "DatabaseID": "111"
                        };
                        if (navigator.onLine) {
                            $.ajaxpostJSON(verizonStandardURL + "SaveOfflineCASValues", myJSONobject, function (data) {
                                $("#SaveOfflineCASValues").append(data);
                            });
                        }
                        break;
                    case "MenuItems":
                        var myJSONobject = {
                            "Language": "en-US",
                            "DatabaseID": "111"
                        };
                        if (navigator.onLine) {
                            $.ajaxpostJSON(verizonStandardURL + "MenuItems", myJSONobject, function (data) {
                                $("#MenuItems").append(data);
                            });
                        }
                        break;
                    case "GetPastDueOrdersCount":
                        var myJSONobject = {
                            "Language": "en-US",
                            "DatabaseID": "111"
                        };
                        if (navigator.onLine) {
                            $.ajaxpostJSON(verizonStandardURL + "GetPastDueOrdersCount", myJSONobject, function (data) {
                                $("#GetPastDueOrdersCount").append(data);
                            });
                        }
                        break;
                    case "GetSecuritySubGroupToken":
                        var myJSONobject = {
                            "Language": "en-US",
                            "DatabaseID": "111"
                        };
                        if (navigator.onLine) {
                            $.ajaxpostJSON(verizonStandardURL + "GetSecuritySubGroupToken", myJSONobject, function (data) {
                                $("#GetSecuritySubGroupToken").append(data);
                            });
                        }
                        break;
                    case "GetWODetails":
                        var myJSONobject = {
                            "Language": "en-US",
                            "DatabaseID": "111"
                        };
                        if (navigator.onLine) {
                            $.ajaxpostJSON(verizonStandardURL + "GetWODetails", myJSONobject, function (data) {
                                $("#GetWODetails").append(data);
                            });
                        }
                        break;
                    case "LoadWorkOrderDetails":
                        var myJSONobject = {
                            "Language": "en-US",
                            "DatabaseID": "111"
                        };
                        if (navigator.onLine) {
                            $.ajaxpostJSON(verizonStandardURL + "LoadWorkOrderDetails", myJSONobject, function (data) {
                                $("#LoadWorkOrderDetails").append(data);
                            });
                        }
                        break;
                    case "9":
                        var myJSONobject = {
                            "Language": "en-US",
                            "DatabaseID": "111"
                        };
                        if (navigator.onLine) {
                            $.ajaxpostJSON(verizonStandardURL + "Save", myJSONobject, function (data) {
                                $("#Save").append(data);
                            });
                        }
                        break;
                    case "10":
                        var myJSONobject = {
                            "Language": "en-US",
                            "DatabaseID": "111"
                        };
                        if (navigator.onLine) {
                            $.ajaxpostJSON(verizonStandardURL + "Save", myJSONobject, function (data) {
                                $("#Save").append(data);
                            });
                        }
                        break;
                }
            }
        </script>
        <div data-role="content">
            <ul data-role="listview">
                <li id="Save" onclick="testNetwork(this)">Link1</li>
                <li id="SyncOfflineWOCreate" onclick="testNetwork(this)">Link2</li>
                <li id="SaveOfflineCASValues" onclick="testNetwork(this)">Link3</li>
                <li id="MenuItems" onclick="testNetwork(this)">Link4</li>
                <li id="GetPastDueOrdersCount" onclick="testNetwork(this)">Link5</li>
                <li id="GetSecuritySubGroupToken" onclick="testNetwork(this)">Link6</li>
                <li id="GetWODetails" onclick="testNetwork(this)">Link7</li>
                <li id="LoadWorkOrderDetails" onclick="testNetwork(this)">Link8</li>
            </ul>
        </div>
    </div>
</body>
</html>