Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/438.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于检查外部URL的Javascript函数_Javascript_Jquery_Ajax - Fatal编程技术网

用于检查外部URL的Javascript函数

用于检查外部URL的Javascript函数,javascript,jquery,ajax,Javascript,Jquery,Ajax,我一直在遵循中找到的答案。但它只在传递本地URL时有效,而不传递任何外部URL 如何让它与外部URL一起工作 我有下面的基本网站,我一直在使用测试 <!doctype html> <html lang="en"> <head> <title>Test</title> <meta charset="utf-8"> <script src="https://ajax.googleapis.com/

我一直在遵循中找到的答案。但它只在传递本地URL时有效,而不传递任何外部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>

测验
函数setGoogleToRed()
{
$('#google').removeClass('label-success').addClass('label-danger');
setTimeout(“setGoogleToGreen()”,2000);
}
函数setGoogleToYellow()
{
$('#google').removeClass('label-success').addClass('label-warning');
setTimeout(“setGoogleToGreen()”,2000);
}
函数setGoogleToGreen()
{
$('#google').removeClass('label-danger').addClass('label-success');
}
函数checkurl()
{
var url=“blah”;
$.ajax(url,
{
状态代码:{
200:函数(){
setGoogleToGreen();
}
},错误:函数(){
setGoogleToRed()
}, 
});  
}
.标签{
边框:1px实心#000;
}
.标签成功{
背景色:#5cb85c;
}
.标签警告{
背景色:#f0ad4e;
}
.贴上危险标签{
背景色:#d9534f;
}
谷歌

我找到了一种让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”传递,然后我的处理程序卷曲响应代码,并将其自身的状态设置为我实际卷曲的页面的状态。这太脏了,但它符合我的需要。

该死的。。因为这是所有的方式超过我的头…只是花了一个小时阅读不同的网站和网页链接到您的链接,没有更接近了解如何使跨网站的工作。如果有人愿意分享一个例子的话,这个例子就太棒了。关于重复的问题,这里有几个例子。我试过几个。我正在使用sinatra,并设置了重定向,但它总是从redir页面返回302,而不是从我实际重定向的页面返回302。anyorigin将无法工作,因为我试图访问的页面仅在我的网络内部。我只是不知道如何适应CORS方法,因为我的全部观点是成功和错误代码,这似乎没有一个例子。XHR应该透明地处理重定向,所以您永远不会看到它(但仍然无法从其他来源读取数据)。CORS方法允许您访问所有数据,因此请查看状态而不是responseText。