如果URL's链接返回错误

Disable HTML link if the URL's link returns an error

本文关键字:链接 返回 错误 URL 如果      更新时间:2023-09-26

我有一个链接到另一个页面的按钮。在单击该链接之前,我想检查该页面当前是否返回错误或是否不存在。我如何对此进行编码?这可能吗?如果链接不存在或返回错误,我想禁用它。

您可以使用ajax加载页面,然后在重定向用户之前对其进行解析以查看是否存在错误。我还想向用户说明为什么链接不起作用。

请注意,我会在服务器端执行此操作。然而,由于您的标签与jquery有关,我发布了一个您可以尝试使用jquery的解决方案。

使用jquery可以:

var link = $('#id_of_your_a_element');
$.ajax(
    url: link.attr('href'),
    error: function() { 
        link.hide();
    }
);

编辑

正如ribot所指出的,这个例子只是隐藏了联系。如果你想禁用它,你可以阻止用户点击链接时的默认行为:

link.click(function(e) {
    e.preventDefault();
});

或者只删除href属性:

link.removeAttr('href');

正如有人所问,您使用的服务器端编程语言是什么(如果有的话)?

在这里查看答案:如何使用Javascript/Ajax而不使用jQuery获取远程url的状态代码?。和这个问题一样,答案涵盖了所有的基础。

Ajax在点击每个请求时,即使它是HEAD请求(这通常应该用来测试url的存在,因为这就是为什么HTTP动词首先存在的原因),我觉得这是一个非常糟糕的主意,即使你可以克服可能无法克服的跨域问题(除非你涉及到Ajax调用的某种服务器端检查)。现在,我想你可能可以在某个地方保存响应,这样链接就不会被重新检查(在客户端或服务器端),但这仍然让我觉得是一个非常复杂的解决方案,通常不需要解决。