【问题标题】:How to avoid or perform Cross domain $.get when using ISA使用 ISA 时如何避免或执行跨域 $.get
【发布时间】:2011-10-04 14:32:05
【问题描述】:

我有 ajax 查询

    var url = "http://ISAServer.domain.com/WebSite";

    $.ajax({
        url: url,
        success: function (data) {
            alert('Load Successful');
        },
        error: function (data) {
            alert('error');
            console.log(data);
            console.log(data.readyState);
            console.log(data.status);
            console.log(data.statusText);
            console.log(data.responseText);
        },
        dataType: 'json'
    });

错误回调被调用。为了通过 ISA,我使用 iPad。使用 iPad,返回的值不是很有帮助。

  • [对象对象]
  • 0
  • 0
  • 错误
  • ""

我很确定问题是跨域获取请求。 ISA 应该以某种方式将我重定向到

“http://internal.domain/WebSite”

但它失败了。当我不通过 ISA 并且还从同一域发出 $.get 请求时,一切都很好(如果我尝试跨域,例如从本地主机到服务器,则会失败)。

我正在使用 ASP.NET MVC-3。我没有成功实现相对 URL。它们最终以形式

“http://servername/siteName/Controller/ControllerService?query”

应该是什么时候

“http://servername/siteName/ControllerService?query”

因此,除非您知道如何解决该问题,否则不能选择相对 URL(而且我们必须通过 ISA,我严重怀疑它是否能解决任何问题)。我有一个帮助方法可以解析当前路径“http://servername/siteName”。

有任何提示、想法建议吗?

【问题讨论】:

  • 我们通过内部和外部域名相同的方式解决了这个问题。 company.com/site 用于内部和外部。 DNS 只是解析到不同的 IP 地址。我将把这个问题留给程序化解决方案。

标签: jquery asp.net-mvc-3 cross-domain cross-domain-proxy


【解决方案1】:

您不能执行跨域 ajax 请求。好吧,有办法做到这一点,但出于安全原因,内置库不允许这样做。

http://www.ajax-cross-domain.com/ 提供了一种方法来做到这一点。我无法保证,因为我从未尝试过。

但是,从上面的 URL 中:“在客户端 javascript 中,由于同源策略,此功能不存在。尽管此策略对于强大的安全模型是必要的,但程序员经常在他们希望发送和检索对远程服务器的请求。”

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-24
    • 2015-02-15
    • 2013-12-29
    • 2013-07-09
    • 1970-01-01
    • 2013-08-17
    • 1970-01-01
    相关资源
    最近更新 更多