2

我们在我们的应用程序中使用 struts 1.3。我们有如下要求 -

我们在登录页面中有按钮。现在,

  1. 如果可以从用户 PC 访问 url,则显示该按钮。
  2. 否则不显示。

为了检查 URL 可访问性,我使用了 XMLHttpRequest.responseText。下面是我的代码:

<html>
  <head>
    <title>Test html page</title>
    <script type="text/javascript">
      function checkURL()
      {
        var xmlHttp = null;
        var theUrl = "http://www.googlewetuyyu.co.in";
        xmlHttp = new XMLHttpRequest();
        xmlHttp.open( "GET", theUrl, false );
        alert(xmlHttp.responseText);
      }
    </script>
  </head>
  <body onload="checkURL();">
    <b>Hello World!</b>
  </body>
</html>

但是我仍然没有在警报框中得到任何信息。

【我稍微修改了一下】

它实际上在 IE 中工作。但不能在铬中工作。请提出解决方案。

谢谢,卡蒂克

4

3 回答 3

1

使用HttpUrlConnection类。如果返回值 2XX 表示该 URL 在您的 PC 上工作正常,则为 getResponseCode()。

您还可以使用来自 apache的 HttpComponents-HttpClient 。这是一个简短的片段,

HttpClient client = new DefaultHttpClient();
HttpGet httpGet = new HttpGet("url_to_check");
HttpResponse response = client.execute(httpGet);

您还可以将 responseHandler 附加到执行对象以简化操作。

于 2013-06-08T06:57:13.960 回答
1

由于跨域 AJAX 请求由于相同的源策略而无法工作,因此我建议使用 2 种方法。

包含一个覆盖 CSS 文件

<link type="text/css" href="http://website.com/normal.css" />
<link type="text/css" href="http://otherwebsite.com/override.css" />

<div id="login" class="login">
    <!-- Your button code -->
</div>

正常的.css

.login
{
    display: none;
}

覆盖.css

#login
{
    display: block;
}

如果客户端可以访问http://otherwebsite.com,则样式将被覆盖,因为 CSS 文件将被加载并且 ID 比 class 更重要。

图像负载测试

<img id="img" style="width: 0;height: 0;" src="http://otherdomain.com/smallimage.png" />
<script>
    $("#img").load(function() { alert("image loaded correctly"); })
    .error(function() { alert("error loading image"); });
</script>
于 2013-06-08T08:13:48.037 回答
0

如果您在客户端运行小程序

您可以使用类发送 HTTP 请求URLConnection,如下所示:

String url = "http://www.mywebsite.com";
String query = "param1=value1";
URLConnection connection = new URL(url + "?" + query).openConnection();
connection.setRequestProperty("Accept-Charset", charset);
InputStream response = connection.getInputStream();

如果您是代理,您可以指定使用:

java -Dhttp.proxyHost=webcache.example.com -Dhttp.proxyPort=8080

如果要发送 HTTPS 请求,可以使用HttpsURLConnection

如果您在浏览器中呈现 HTML,请使用 Javascript

function httpGet(theUrl)
{
    var xmlHttp = null;

    xmlHttp = new XMLHttpRequest();
    xmlHttp.open( "GET", theUrl, false );
    xmlHttp.send( null );
    return xmlHttp.responseText;
}
于 2013-06-08T06:56:15.873 回答