【问题标题】:Checking if a external 3rd party site exists [duplicate]检查是否存在外部 3rd 方站点 [重复]
【发布时间】:2013-07-29 08:28:13
【问题描述】:

用户可以在文本字段中输入 URL,我想添加一个基于 jQuery 的功能,该功能能够检查页面是否至少存在,以便我可以警告用户是否可能不小心输入了不正确的 URL,在他们点击“保存”之前

目前我正在尝试使用以下代码,尽管它似乎总是返回“错误:不存在”消息:

$('#Inventory_edocsUrl').blur(function(){
    $.ajax({
        url:$('#Inventory_edocsUrl').val(),
        type:'GET',
        success: function()
        {
            console.log('Success, file exists!');
        },
        error: function()
        {
            console.log('ERROR:Does not exist');
        }
    });
});

我在文本字段中使用http://google.com 作为测试 url 进行了测试,但它仍然返回错误。将 url 切换到 google.com(不是 http)后,我收到了相同的错误消息以及另一条错误消息:

GET http://localhost/inventory/web/inventory/google.com 404 (Not Found) 

这是有道理的,因为没有 http://,所以第二个版本不起作用,因此应该返回错误,但我不明白为什么第一个正确的 url 返回编程的错误消息,但实际上是没有像第二次试用那样返回控制台错误。

是不是我做错了什么?

【问题讨论】:

  • @Lix 不,这些有点不同。
  • 你想测试一个 URL 是否存在,不是吗?有什么不同?
  • @Lix 我正试图找出我具体做的事情有什么问题。
  • @Lix 我发现的大多数其他解决方案似乎不适用于外部 URL。
  • 那是same-origin policy。您的服务器上需要一个代理。

标签: jquery input


【解决方案1】:
$.ajax({
    statusCode: {
        404: function() {
            alert("page not found");
        }
    }
});

形成 jQuery.ajax() 文档....

【讨论】:

    【解决方案2】:

    用途:

    url:$('#Inventory_edocsUrl').text();
    

    代替:

    url:$('#Inventory_edocsUrl').val();
    

    【讨论】:

    • "用户可以在文本字段中输入 URL" --> .val() 是正确的。
    • 不,这是一个文本字段,我知道该值被正确检索。
    猜你喜欢
    • 2012-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-31
    • 2011-04-08
    • 2015-01-09
    • 2011-02-25
    • 2013-05-20
    相关资源
    最近更新 更多