0

我编写了一个从桌面运行的网页,以从公共网站上获取信息。我正在尝试到达 1)如果没有互联网连接,则会发出警报 2)如果有互联网连接但不知何故未正确检索信息,则会提醒用户。

如果没有 Internet 连接,try and catch 可用于测试。

我正在使用 xml.status 代码进行第二次测试...如果网站处于活动状态,但提取的信息被弄乱了....该测试条件没有按我想要的方式工作。我试着给 xml.open 一个虚假的网站,并期待一个非 200-300 的状态代码。但它不起作用......而是激活了catch语句。为什么是这样?有没有更好的方法来写这个?

另外,在旁注中,我已经返回“”;因为我使用它的调用变量不能为空或未定义:variable = getInfo(); n.setAttribute("占位符", 变量);

function getInfo() {
        var xml = null;
        xml = new XMLHttpRequest(); 
        try {
            xml.open("get", "http://example.asp", false);
            xml.send(null);
            if ((xml.status >= 200 && xml.status <= 300) || xml.status == 304) {
                var hi = xml.responseText;
                hi = hi.replace(/(\r\n|\n|\r)/gm, "");
                var what1 = /winning_number_sm.*?ul/
                    var what2 = /\d+/g

                    hi = what1.exec(hi);
                var temp;
                for (i = 0; i < 6; i++) {
                    if (null !== (temp = what2.exec(hi))) {
                        numbers[i] = temp;
                    }
                }
                return numbers;
            } else {
                alert("Error Connecting to Website! You will have to eneter informatin by hand");
                return "";
            }
        } catch (e) {
            alert("No Internet Connection! You will have to enter information by hand");
            return "";
        }

}
4

2 回答 2

0

我不知道您是否可以使用 jQuery 框架,但是要从 ajax 连接中获取错误(测试网站是否启动),您可以轻松地做到这一点:

//your ajax object
var request = $.ajax({
  url: "http://www.exemple.com/script.php",
  type: "POST",
  data: {/*your datas*/},
  dataType: "html"
});

request.done(function(msg) {
  //make your stuff automatically
});

request.fail(function(jqXHR, textStatus) {
  alert( "Error Connecting to Website! You will have to enter informatin by hand");
});
于 2012-10-14T09:47:14.043 回答
0

另一种方法是调用本地 php 脚本,其测试远程 url 与 curl 函数(例如:http ://www.php.net/manual/en/function.curl-error.php )

于 2012-10-16T14:08:07.427 回答