【发布时间】:2016-06-07 14:12:07
【问题描述】:
我正在尝试检查给定的 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 是唯一给我正确答案的人。 urlYoutube、url3 和 brokenUrl 返回 CORS 错误:No 'Access-Control-Allow-Origin' header is present on the请求的资源。因此,不允许访问 Origin 'null'。
所以我在网上来回寻找解决方案,我想出的解决方案是在ajax请求参数上添加dataType: "jsonp",但不幸的是好像没用。
是否有任何其他解决方案/插件来检查是否可以从我的主机访问 URL?
【问题讨论】:
-
如果遇到 CORS 错误,则表示无法通过
$.ajax()使用 URL,因此表示答案是“无法访问”。 -
@Pointy “无法访问”和“由于 CORS 安全限制而无法使用”之间有很多区别
-
@Alnitak 是的,尽管对我来说,确定网络连接的想法很不稳定。这个问题当然不清楚,因为没有说明目标。
-
@Pointy 我来自网络工程背景,其中“不可访问”具有非常明确的含义;)
-
我尊重您的专业知识,但作为一个简单的程序员,我已经学会假设网络在任何时候都可能完全消失,只有在调用“网络离线”错误处理程序时才会重新出现:)
标签: javascript jquery ajax url