检查跨域网址是否为404提供了javascript

Rik*_*ard 11 javascript xml ajax

我正在尝试这个代码,但它给了我一个DOM异常.我希望它使用普通的Javascript从函数中获得真/假"答案".

var url = 'http://www.google.com/';
function UrlExists(url)
{
  var http = new XMLHttpRequest();
  http.open('HEAD', url, false);
  http.send();
  return http.status!=404;
}
UrlExists(url);
Run Code Online (Sandbox Code Playgroud)

小提琴

我从这个 SO答案得到了这个代码,但正如我说的那样,我无法让它工作......

小智 1

跨域不给出任何状态码。状态代码是当服务器响应“是”或“否”时从服务器接收到的内容的一部分。如果跨域服务器永远不会响应请求。

代码中的第二个错误是您无法在没有任何等待时间或成功事件的情况下直接捕获状态代码。函数中的 return 语句不会等到服务器响应 ajax 请求,因此您不能依赖它。