我使用简单的AJAX并使用google debug然后发现该url不存在...
代码非常简单:
var http;
if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari
http=new XMLHttpRequest();
} else {
http=new ActiveXObject("Microsoft.XMLHTTP");
}
try {
http.open("GET", 'http://'+ip+':5000/test.html', true);
http.onreadystatechange = onRcvData;
if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
http.send(null);
} else {// code for IE6, IE5
http.send();
}
} catch(e) {
http.abort();
}
function onRcvData() {
if (http.readyState==4) {
if (http.status==404) {
} else if(http.status==200) {
} else {
}
}
}
如果文件test.html存在,那没关系。 当文件不存在时,错误显示在部件中:
if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari
http.send(null);
} else { // code for IE6, IE5
http.send();
}
所以,即使我使用onreadystatechange方法也无法阻止错误...
该文件位于我的网页旁边。
那么我应该怎么做才能与httprequest结合?
任何建议都表示赞赏。
添加:
我使用了方法' Head'但它返回404 ...(无论jQuery插件/ javascript)
如图:
我该怎么做......
我发现错误的方向是否误导了?
答案 0 :(得分:3)
你可以使用这个功能
function UrlExists(url)
{
if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari
var http=new XMLHttpRequest();
}
else {
var http=new ActiveXObject("Microsoft.XMLHTTP");
}
http.open('HEAD', url, false);
http.send();
return http.status!=404;
}
<强> Reference 强>
答案 1 :(得分:2)
尝试此功能
function urlExists(testUrl) {
var http = jQuery.ajax({
type:"HEAD", //Not get
url: testUrl,
async: false
})
return http.status!=404;
}
//Usage
if(!urlExists('http://www.mysite.com/somefileOrImage.ext')) {
alert('File not found');
}
<强> HEAD 强>
HEAD方法与GET相同,只是服务器不能 在响应中返回一个消息体。元信息包含 在HTTP头中响应HEAD请求应该是相同的 响应GET请求发送的信息。这种方法可以 用于获取有关该隐含的实体的元信息 请求而不转移实体主体本身。这个方法是 经常用于测试超文本链接的有效性,可访问性, 和最近的修改。
了解 head here