2012-03-14 31 views
0

它是否有可能只用JavaScript来击中指定的URL并获得是否有可能击中URL的回复。我不需要URL内容和页面的任何信息,我需要的是确保URL已到达,并且它渗透到所有定制防火墙,这些防火墙将以其方式驻留。稳定的URL来确认连接JavaScript

+0

什么,像网络ping命令? – j08691 2012-03-14 17:16:45

+0

由于相同的源安全策略,JS无法通过AJAX调用命中任意URL,但是您可以做一些像JSONP调用一样的事件来检查URL是否可访问。您最好动态创建一个''标签并查看该请求的状态。 – 2012-03-14 17:18:03

回答

2

不可以。您会碰到Same Origin Policy墙。

你真的需要在服务器端做到这一点。在JS方面,你可以通过一个简单的ajax测试它到服务器端返回一些布尔值。请注意,这只会测试服务器和所需URL之间的连接,而不是客户端和所需URL之间的连接。不确定这是否会为您的功能需求形成潜在问题。

+0

(可选)调用任何可靠的JSON-P API。如果您获得结果,则已达到网址。放弃结果。如果你没有得到结果,防火墙阻止了你,或者你调用的API被关闭了(如果你选择一个可靠的API,机会很小) – xbonez 2012-03-14 17:17:36

+0

@xbonez:我不认为“指定的URL”是一个公共的JSONP API或具有'Access-Control-Allow-Origin:*',否则OP可能不会问这个问题。 – BalusC 2012-03-14 17:20:32

+0

哦,没错。重新阅读这个问题。我的第一个解释是OP只是想测试客户端是否可以访问互联网。在这种情况下,任何API都足够了。 – xbonez 2012-03-14 17:22:21

0

您可以对URL进行HEAD请求。这只会返回HTTP头,但不会返回内容。

如果这是在浏览器中的Javascript,使用XMLHTTPRequest对象应该很容易,当然提供它在同一个域中,以便您有权访问请求URL。

0

仅当请求的页面具有Access-Control-Allow-Origin标头时。

此功能将crossdomain起源添加到您的文档。

顺便说一句,你只能使用现代浏览器检索它,并需要访问请求的页面(设置此标题)。

看:

http://www.w3.org/TR/cors/