Ajax-用于在发送请求之前检查url是否存在的函数
Ajax - Function to check if url exists before send request
我正在编写一个函数,从网站/服务器获取json文件,并将其保存在本地存储中,代码为:
function donators() {
var jsonURL = "http://mywebsite.com/donators.json";
var xhr = new XMLHttpRequest();
xhr.open("GET", jsonURL, true);
xhr.onreadystatechange = function() {
if (xhr.readyState == 4) {
localDataStore.set("fb_donators", xhr.responseText);
}
};
xhr.send();
}
当json文件可以访问时,上面的代码运行得很好,但如果我的服务器出现故障,无法访问该文件,我的脚本会停在xhr.send()行,并返回错误:
GET http://mywebsite.com/donators.json net::ERR_NAME_NOT_RESOLVED
有没有一种方法可以检测,在发送请求之前检查是否可以访问url,以停止发送请求,并允许我的脚本的其余部分继续运行,而不是在xhr.send()处停止?
谢谢!
您可以为此使用try
块。它仍然需要HTTP请求,但它会正常地失败,您可以随心所欲地处理错误。
function donators() {
var jsonURL = "http://mywebsite.com/donators.json";
var xhr = new XMLHttpRequest();
xhr.open("GET", jsonURL, true);
xhr.onreadystatechange = function() {
if (xhr.readyState == 4) {
localDataStore.set("fb_donators", xhr.responseText);
}
};
xhr.timeout = 5000;
xhr.ontimeout = function() {
alert( 'The operation timed out.' );
}
try { xhr.send(); } catch( err ) {
alert( 'Error getting data: ' + err.message );
}
}
相关文章:
- JS:检查URL中的参数,然后迭代一个参数为var的函数
- 遍历 JSON 对象并检查 URL 是否以某个值结尾
- 如何检查这个代码点火器php函数是否工作,该函数是否在ajax url中使用
- 如何利用多链接延迟检查并显示ping结果,然后使用JavaScript选择最快的URL
- javascript window.location在检查firebug时给了我一个错误的url路径
- 检查蒸汽配置文件url是否有效
- 检查用户是否正在访问纯根url
- 如何检查 iframe 中的锚标记是否包含 URL
- 如何使用Selenium IDE检查URL中的字符串
- Javascript检查url是否存在并检查其上显示的一些信息
- 检查上一个(-1&-2)url是否包含字符串
- 检查D3.js中的函数中是否存在URL
- 如何检查url是否包含多个字符串.Javascript/jquery
- OData URL 检查长度是否可以使用 Breeze JS 表示
- url检查正则表达式在浏览器中无休止地运行
- Javascript URL Regex 使用URL检查正则表达式
- Javascript url检查错误
- 通过URL检查和发送变量而不需要重定向
- 完美的URL检查正则表达式为大多数URL's
- 使用传递的url检查网络上是否存在文件