Javascript函数检查外部URL

时间:2014-05-10 19:10:24

标签: javascript jquery ajax

我一直在关注this post中找到的答案。但它仅在传递本地URL时有效,而不是任何外部URL。

如何使用外部网址?

我有以下基本网站用于测试。

<!doctype html>
<html lang="en">
<head>
    <title>Test</title>
    <meta charset="utf-8">

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
    <script type="text/javascript">
    function setGoogleToRed ( )
    {
        $('#google').removeClass('label-success').addClass('label-danger');
        setTimeout ( "setGoogleToGreen()", 2000 );
    }
    function setGoogleToYellow ( )
    {
        $('#google').removeClass('label-success').addClass('label-warning');
        setTimeout ( "setGoogleToGreen()", 2000 );
    }
    function setGoogleToGreen ( )
    {
        $('#google').removeClass('label-danger').addClass('label-success');
    }
    function checkurl ( )
    {
      var url = "blah";
      $.ajax(url,
      {
         statusCode: {
         200: function() {
            setGoogleToGreen();
         }
      }, error: function () {
            setGoogleToRed()

        }, 
    });  
    }
    </script>
    <style>
    .label {
        border: 1px solid #000;
    }
    .label-success {
        background-color: #5cb85c;
    }
    .label-warning {
        background-color: #f0ad4e;
    }
    .label-danger {
        background-color: #d9534f;
    }
    </style>

</head>
<body>
<header>
<input type="button" value="Check URL" onclick="checkurl()"/>
<span id="google" class="label label-success" >google</span>
</header>
</body>
</html>

1 个答案:

答案 0 :(得分:0)

我找到了一种方法来使这个与sinatra一起工作:

get 'redir/:redir' do
   redir = params[:redir]
   blah = `curl -m 1 -s -0 /dev/null -w %{http_code} "#{redir}"`
   status blah.to_i
end

这允许我使用上面的代码,并将URL作为“/redir/google.com”传递,然后我的处理程序卷曲响应代码,并从我实际卷曲的页面中设置自己的状态作为状态。这非常脏,但它符合我的需要。