这个问题之前已经发布在Stack上,但没有具体说明我想要了解的内容。
检查URL是否正确以发送http Head请求的最简单方法。但是如何使用它来指定URL?
我在上一篇文章中发现了这一点:
function UrlExists(url) {
var http = new XMLHttpRequest();
http.open('HEAD', url, false);
http.send();
return http.status!=404;
}
但由于某些原因,它似乎并没有在萤火虫中运行。
我很抱歉道歉。
答案 0 :(得分:36)
我建议使用jQuery来实现正确的跨浏览器ajax请求:
function UrlExists(url, cb){
jQuery.ajax({
url: url,
dataType: 'text',
type: 'GET',
complete: function(xhr){
if(typeof cb === 'function')
cb.apply(this, [xhr.status]);
}
});
}
用法:
UrlExists('/path/script.pl', function(status){
if(status === 200){
// file was found
}
else if(status === 404){
// 404 not found
}
});
答案 1 :(得分:1)
现代,交叉和短途
checkLink = async url => Boolean(url) || (await fetch(url)).ok
与以下内容相同:
async checkLink(url) { return Boolean(url) || (await fetch(url)).ok }
与以下内容相同:
async function checkLink(url) { return Boolean(url) || (await fetch(url)).ok }
与以下内容相同:
注意:从Gecko 30.0(Firefox 30.0 / Thunderbird 30.0 / SeaMonkey 2.27),Blink 39.0和Edge 13上的同步请求 主线程由于对主线程的负面影响而被弃用 用户体验。
交叉解决方案(旧的,过时的)
function UrlExists(url) {
var http = new XMLHttpRequest();
http.open('HEAD', url, false);
http.send();
return http.status==200;
}