我写了一个从桌面运行的网页,用于从公共网站上获取信息。我试图使其到达1)如果没有互联网连接有警报2)如果有互联网连接,但不知何故信息未被正确检索,用户将收到警报。
如果没有互联网连接,try和catch适用于测试。
我正在使用xml.status代码进行第二次测试...如果网站处于活动状态但拉出的信息搞砸了....测试条件不按照我想要的方式工作。我试图给xml.open一个虚假的网站,并期待一个非200-300状态代码。但它没有用......而是激活了catch语句。为什么是这样?还有更好的方法来写这个吗?
另外,在旁注上我回来了“”;因为我使用它的调用变量不能为null或undefined: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 "";
}
}
答案 0 :(得分: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");
});
答案 1 :(得分:0)
其他方法可以调用本地php脚本,其测试远程url具有curl函数(例如:http://www.php.net/manual/en/function.curl-error.php)