Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.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
Javascript 从客户端检查跨域服务器可用性';s机器(带JSONP、ping等)_Javascript_Jquery_Ajax_Jsonp - Fatal编程技术网

Javascript 从客户端检查跨域服务器可用性';s机器(带JSONP、ping等)

Javascript 从客户端检查跨域服务器可用性';s机器(带JSONP、ping等),javascript,jquery,ajax,jsonp,Javascript,Jquery,Ajax,Jsonp,我需要检查跨域服务器是否可用。选择包括: -发送ping -获取HEAD请求 -将自己的服务器设置为代理服务器并在参数中传递跨域服务器数据 -发出JSONP请求 我想在客户端这样做(我总是可以从我的服务器访问跨域服务器) 我需要知道客户的状态。所以javascript是强制性的 我不想使用自己的服务器作为代理,因为这会导致安全问题,而且我无法知道客户端的状态 我在下面尝试了JSONP,但也可以使用ping解决方案或您可以推荐的任何其他解决方案 我在跨域服务器中没有任何特权。我只能使用api密钥

我需要检查跨域服务器是否可用。选择包括:
-发送ping
-获取HEAD请求
-将自己的服务器设置为代理服务器并在参数中传递跨域服务器数据
-发出JSONP请求

  • 我想在客户端这样做(我总是可以从我的服务器访问跨域服务器)
  • 我需要知道客户的状态。所以javascript是强制性的
  • 我不想使用自己的服务器作为代理,因为这会导致安全问题,而且我无法知道客户端的状态
  • 我在下面尝试了JSONP,但也可以使用ping解决方案或您可以推荐的任何其他解决方案
  • 我在跨域服务器中没有任何特权。我只能使用api密钥从服务器发出restful请求
  • 我更喜欢基于jquery的异步解决方案。但是使用纯javascript是可以的
  • 我只需要检查服务器是否可用。如果我能从服务器上知道响应时间会更好。我不需要关于服务器的其他数据
我的小提琴像

当我尝试这段代码时,在响应数据的第一行中出现“uncaughtsyntaxerror:unexpectedtoken<”错误。所以后续的javascript代码不起作用


如何检查此可用性?

公平地说,如果建立了连接,服务器可用,或者您正在从ajax调用中寻找特定值@patric evans-谢谢,我匆忙点击了错误的按钮。我唯一需要做的就是检查客户端机器中的服务器是否可用。(我可以通过我的服务器访问)您可以控制远程服务器吗?JSONP调用的另一端需要一个脚本,该脚本将JSON数据包装在回调函数中,适合嵌入
标记中。JSONP调用不会返回错误,但成功回调永远不会触发,因此您需要设置一个超时,以确定服务器在一定时间后不可用。@iain_simpson谢谢。我编辑了这个问题。我无法控制远程服务器。我只能发出restful请求。恐怕服务器端调用是最好的选择。您将无法直接从浏览器查询Twitter-您需要一个代理脚本。
$.ajax({
    url: "https://twitter.com",
    dataType: 'jsonp',
    success: function (data) {
        console.log("success");
        //console.log("data2:"+data);
        //console.log("data:"+JSON.stringify(data));
    },
    error: function (r, s, e) {
        console.log("error status: " + r.statusText + ", " + r.status);
        console.log("error r: " + r);
        console.log("error e: " + e);
    }
});