朋友:
我找到了这两段代码来测试网络上存在的文件。 JQuery版本非常受欢迎,第二个版本是简单的javascript。 我只是从yahoo.com抓了一个文件 - http://l.yimg.com/cv/mntl/tra/11q2/img_48880236.jpg
使用下面的代码制作一个小的.html文件。但即使我修改了.jpg文件,我总是在我的消息中获得SUCCESS(或者更确切地说是EXISTS) 上文提到的。我在IE *和Google Chrome中尝试了我的.html文件。已经链接了以下jQuery文件--jquery-1.4.2.min.js。 欢迎任何帮助或建议。
JQuery版本 -
$.ajax({
url:'http://l.yimg.com/cv/mntl/tra/11q2/img_48880236--.jpg',
type:'HEAD',
error:
function(){
alert('DOES NOT EXISTS');
},
success:
function(){
alert('EXISTS');
}
});
Javascript版本 -
var _url="http://l.yimg.com/cv/mntl/tra/11q2/img_48880236--.jpg" ;
var http = new XMLHttpRequest();
http.open('HEAD', _url, false);
http.send();
http.status !=404 ? alert('EXISTS') : alert('DOES NOT EXIST') ;
答案 0 :(得分:1)
您无法使用ajax调用从其他域获取资源。你得到一个沙盒例外。
答案 1 :(得分:0)
仅适用于图片:
$('<img />')
.bind('error', function(event) { alert('error 1'); })
.bind('load', function(event) { alert('load 1'); })
.attr('src', 'http://l.yimg.com/cv/mntl/tra/11q2/img_48880236.jpg');
$('<img />')
.bind('error', function(event) { alert('error 2'); })
.bind('load', function(event) { alert('load 2'); })
.attr('src', 'http://l.yimg.com/cv/mntl/tra/11q2/img_48880236__.jpg');
答案 2 :(得分:0)
在测试jQuery版本时,它可以工作。 JS版本是完全错误的。
XMLHttpRequest的使用非常不正确。应该做些什么
http.onreadystatechange = function() {
if(http.readyState == 4) {
if(http.status == 200) {
alert("EXISTS");
} else { // this else is tricky if the server answers e.g. with a redirection.
// it will work in most of the cases.
alert("DOES NOT EXISTS");
}
}
}
但这只会在您停留在同一个域名时起作用,因为否则您会与同源政策发生冲突。