确定链接在用户单击时是否有效
我提供了一个小部件,用户可以在其中存储他们创建的链接。
换句话说,他们:
- 单击添加链接
- Modal弹出并输入信息:链接标题,链接URL,订单
- 通过AJAX将其保存到数据库,然后刷新小部件以显示他们创建的所有用户链接。
我想做的是当用户点击他们的链接,确定链接是否存在(可能不在这个域上,所以我可以看到一个可预见的问题与AJAX),如果它然后继续正常打开新窗口并发送它们在他们的快乐方式。
但是,如果不是,我想生成类似于Growl Like的消息。
对不起,链接不存在,请validation您的链接。
我基本上需要用于在客户端基础上validation链接存在的方法。 这有可能吗?
您可以使用jquery在所有链接上附加click()
事件处理程序,然后尝试在隐藏的iframe中加载URL,如果成功则在新窗口中打开链接。 请注意,这是一种非常昂贵的链接检查方式。 也许像HTTP头请求那样更聪明。
编辑:
找到解决方案(仅适用于普通的javascript): Javascript / Ajax中的HTTP HEAD请求?
function UrlExists(url) { var http = new XMLHttpRequest(); http.open('HEAD', url, false); http.send(); return http.status!=404; }
这里有一个jQuery解决方案: Ajax HEAD请求通过Javascript / jQuery
ajaxSizeRequest = $.ajax({ type: "HEAD", async: true, url: url, success: function(message){ }
正如@Matt King所指出的那些实际上是相当无用的跨域 – 在这种情况下,我会在您的应用程序中设置proxy.aspx页面,而不是您查询。 然后,此代理必须在C#中执行HTTP HEAD请求,并将结果(成功/失败)返回给client / jQuery。