Javascript检查站点url是否可访问
我试图找到最好的jquery方法来检查站点url是否可访问。我需要做的就是确认用户可以访问该站点。然而,对于CORS,我不太确定最好的方法。我一直在尝试,但遇到了一些问题Javascript检查站点url是否可访问,javascript,jquery,Javascript,Jquery,我试图找到最好的jquery方法来检查站点url是否可访问。我需要做的就是确认用户可以访问该站点。然而,对于CORS,我不太确定最好的方法。我一直在尝试,但遇到了一些问题 $.ajax({ type: 'HEAD', url: url, success: function(){ callback(true); }, error: function() { callback(false); } }); 但我得到了以下
$.ajax({
type: 'HEAD',
url: url,
success: function(){
callback(true);
},
error: function() {
callback(false);
}
});
但我得到了以下错误:
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://my-site.com. (Reason: CORS header ‘Access-Control-Allow-Origin’ missing).
实现这一目标的最佳方式是什么
谢谢 由于跨源限制,您将无法在客户端执行此操作。您必须在服务器端运行一些服务。您可以尝试添加值为true的跨域属性,也可以通过true初始化支持cors
$.support.cors = true;
$.ajax({
type: 'HEAD',
url: url,
crossDomain: true,
succees: function(){
callback(true);
},
error: function() {
callback(false);
}
});
你可以用`
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('-- Insert Url Here --', function(status) {
if(status === 200) {
-- Execute code if successful --
} else if(status === 404) {
-- Execute code if not successful --
}else{
-- Execute code if status doesn't match above --
}
});
注意:成功不是成功。想想这个。。。收到CORS标头错误将表明客户端可以访问该站点。如果用户无法解析URL,则不会收到CORS错误。如果URL已关闭,则不会出现CORS错误。@S.Walker这也是一个有效点。。也许这不是一个简单的方法。@S.Walker你不知道。很多人都有ISP,可以自动应答无效主机名的请求。或者,WiFi上的专属门户页面。没有一种方法可以区分跨源。问题是我想测试从客户端浏览器(而不是服务器)到某些站点的连接。@AaronA由于跨源限制,您不能。当然,除非网站允许你这么做。。。但如果他们这样做了,我想你不会问这个问题。这并不能解决问题中概述的跨来源问题。