Javascript 检查URL是否可从当前主机访问

Javascript 检查URL是否可从当前主机访问,javascript,jquery,ajax,url,Javascript,Jquery,Ajax,Url,我正在尝试检查给定的URL是否可以从当前主机访问 $(document).ready(function(){ url1 = "https://upload.wikimedia.org/wikipedia/commons/thumb/4/45/GuitareClassique5.png/150px-GuitareClassique5.png"; urlYoutube = "https://www.youtube.com/embed/F2AitTPI5U0"; url3 =

我正在尝试检查给定的URL是否可以从当前主机访问

$(document).ready(function(){

    url1 = "https://upload.wikimedia.org/wikipedia/commons/thumb/4/45/GuitareClassique5.png/150px-GuitareClassique5.png";
    urlYoutube = "https://www.youtube.com/embed/F2AitTPI5U0";
    url3 = "https://techslides.com/demos/sample-videos/small.mp4";
    brokenUrl = "http://www.example.com/images/1.png";  


    $.ajax({
     url: url3,
     type: "HEAD",
     fail: function () { alert("Error triggered "); },
     success: function () { alert("Success triggered"); }
    }); 


});
所以我的问题是,url1是唯一给我正确答案的人。 urlYoutubeurl3brokenUrl返回CORS错误:请求的资源上不存在“访问控制允许来源”标头。因此,不允许访问源站“null”。

所以我在互联网上来回寻找解决方案,我提出的解决方案是在ajax请求参数上添加数据类型:“jsonp”,但不幸的是,它似乎不起作用


是否有其他解决方案/插件来检查是否可以从我的主机访问URL?

尝试使用
图像
元素,设置其
.src
属性,然后捕获
.onerror
事件

图像不受与
XMLHttpRequest
对象相同的CORS限制


您可能需要在图像URL上添加一个随机后缀(例如
#
),以确保您的应用程序不会被缓存愚弄。

尝试使用
图像
元素,设置其
.src
属性,然后捕获
.onerror
事件

图像不受与
XMLHttpRequest
对象相同的CORS限制


您可能需要在图像URL上添加一个随机后缀(例如,
#
),以确保您的应用程序不会被缓存愚弄。

作为Alnitak答案的一个补充,您可以在ajax中使用缓存

$.ajax({ cache: false,...});

这将产生与在url上添加随机后缀相同的结果,作为对Alnitak答案的补充,您可以在ajax缓存中使用

$.ajax({ cache: false,...});

这将产生与在url上添加随机后缀相同的结果

如果出现CORS错误,这意味着url不能通过
$.ajax()
使用,因此这意味着答案是“不可访问”。@Pointy“不可访问”和“由于CORS安全约束而不可用”之间有很大区别@Alnitak true,尽管对我来说,确定网络连通性的想法并不可靠。这个问题当然不清楚,因为目标没有明确。@Pointy我来自网络工程背景,其中“不可达”的含义相当明确;)我遵从您的专业知识,但作为一名简单的程序员,我学会了假设网络在任何时候都可能完全消失,只有在调用“网络脱机”错误处理程序时才会重新出现:)如果您遇到CORS错误,这意味着URL无法通过
$.ajax()
使用,因此这意味着答案“无法访问”@Pointy“无法访问”和“由于CORS安全限制而无法使用”之间有很大区别@Alnitak true,尽管对我来说,确定网络连接的想法并不可靠。这个问题当然不清楚,因为目标没有明确。@Pointy我来自网络工程背景,其中“不可达”的含义相当明确;)我相信你的专业知识,但作为一个简单的程序员,我学会了假设网络在任何时候都可能完全消失,只会在调用“网络脱机”错误处理程序时重新出现:)不,在我看来,这只是一种比在url上添加后缀更简单的方法:)不,在我看来,这只是一种,比在url上添加后缀更简单:)