【问题标题】:Can you cross-site ping another site using C# or JS/Ajax?您可以使用 C# 或 JS/Ajax 跨站点 ping 另一个站点吗?
【发布时间】:2010-03-29 15:54:44
【问题描述】:

在我们的 Web 应用程序中,我正在尝试 ping 第三方网站以查看它是否已启动,然后再将我们的客户重定向到该网站。到目前为止,除了从桌面应用程序或系统控制台之外,我还没有看到其他方法。这可能吗?听说原来的 ASP 有图片技巧。

目前我们正在使用带有 Javascript 的 .NET MVC。

谢谢,

乔什

【问题讨论】:

    标签: c# ajax web-applications cross-site pinging


    【解决方案1】:

    您可以执行一个两阶段的过程,您可以在其中进行 AJAX 调用,如果它有效,则重定向到该站点。例如,AJAX 调用可以执行以下操作:

    public bool IsAddressResponsive(string Address)
    {
        HttpWebRequest req = (HttpWebRequest)WebRequest.Create(Address);
        req.Method = "GET";
        HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
        if (resp.StatusCode == HttpStatusCode.OK || resp.StatusCode == HttpStatusCode.Accepted)
        {
            return true;
        }
        else
        {
            return false;
        }
    }
    

    如果响应为真,则重定向到该地址。

    【讨论】:

      【解决方案2】:

      查看这个问题的答案以使用 jquery 来完成。 how-to-test-a-url-in-jquery

      【讨论】:

      • 看起来已接受答案中的外部链接已更改,现在为 binarykitten.me.uk/dev/jq-plugins/…
      • 也许我只是用错了,但该插件似乎是用于本地 url 检查。意思是 www.YourDomain.com/home.html,因为如果我尝试 www.google.com。我得到 www.YourDomain.com/www.google.com。我正在寻找并查看像 www.YourDomain.com 这样的网站是否来自 www.MyDomain.com。如果我能在客户端做到这一点,那就太棒了,因为我相信当第 3 方托管在我客户的 Intranet 中时我会遇到问题。
      【解决方案3】:

      您可能正在寻找System.Net.HttpWebRequest 类。您可以使用此类向 3rd 方系统发出请求。如果它是一个 ASP.Net Web 应用程序,您可能正在从您的代码中进行此调用。

      然后您需要检查 200 响应代码。如果您必须担心安全性或传递用户 cookie,事情会变得有点棘手。

      【讨论】:

      • 看起来 theBadDawg 击败了我,并且还包含了一个代码示例。 BadDawg 干得好。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-01-16
      • 2010-09-23
      • 1970-01-01
      • 2011-08-17
      • 2016-03-28
      • 1970-01-01
      相关资源
      最近更新 更多