Javascript 如何知道url是否可用?
我有一个重定向到intranet方向的链接:Javascript 如何知道url是否可用?,javascript,jquery,url,validation,Javascript,Jquery,Url,Validation,我有一个重定向到intranet方向的链接: <a href="http://10.2.68/name/">Go</a> 只有内联网中的用户才能访问,否则会出现404错误。在重定向之前,我想知道url是否有效,这样,离开intranet的用户不会收到404错误,而是会收到一条消息,说“你没有访问权”。如何使用jquery或javascript实现这一点 编辑: 好的,非常感谢,但不幸的是,任何方法都不适合我。对不起,我没有提到网站和内部网url在不同的域中。 最后,
<a href="http://10.2.68/name/">Go</a>
只有内联网中的用户才能访问,否则会出现404错误。在重定向之前,我想知道url是否有效,这样,离开intranet的用户不会收到404错误,而是会收到一条消息,说“你没有访问权”。如何使用jquery或javascript实现这一点
编辑:
好的,非常感谢,但不幸的是,任何方法都不适合我。对不起,我没有提到网站和内部网url在不同的域中。
最后,我必须在codebehind中验证用户IP,并写入或不写入内部网url。或许可以使用htaccess文件来检测内部网络?您可以使用此jQuery插件向远程文件发出head请求,如果它返回的内容是好的(例如,您可以显示它),否则就不显示它 插件:
您可以先发出ajax请求,例如:
$.ajax({
url: "http://10.2.68/name/",
context: document.body,
success: function(){
window.location = "http://10.2.68/name/";
}
});
这可以通过绑定到链接上的click事件来运行
不确定它是否会因为跨来源的东西而工作,但可能是一个很好的开始。最好的答案是在用户尝试单击链接之前,禁用处于非活动状态的链接(为什么要让他们尝试?) 但是如果你不想打电话,因为每分钟都有成千上万的用户在浏览网页
jQuery(function($) { // make sure dom is ready
$('#link').click(function() {
$.ajax( {
url: url,
//dataType: 'JSONP', //might need this?
success: function() {
window.location = url;
},
error: function() {
// does this work with JSONP? be sure to check!
window.alert('could not connect');
}
}
});
});
假设您的锚具有ID:
<a id="lnkGo" href="http://10.2.68/name/">Go</a>
此外,请记住,这不会在跨域问题上起作用。url必须与当前域相同 这样行吗?我想,当
ajax
sync调用时,点击链接就会被重定向
<a id="lnkGo" href="http://10.2.68/name/">Go</a>
$("#lnkGo").bind("click", function() {
var $that = $(this);
$.ajax({
url: $that.attr("href"),
statusCode: {
200: function() {
window.location = $that.attr("href")
},
404: function () {
alert("Sorry, page is unavailable...");
}
}
});
return false;
});