如何在使用ISA时避免或执行跨域$ .get

时间:2011-10-04 14:32:05

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

我有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,返回的值不是很有帮助。

  • [object Object]
  • 0
  • 0
  • 错误
  • “”

我很确定这个问题是跨域获取请求。 ISA不知何故应该将我重定向到

“HTTP://internal.domain/WebSite”

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

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

的形式结束

“HTTP://服务器/网站名称/控制器/ ControllerService查询”

什么时候应该

“HTTP://服务器/网站名称/ ControllerService查询”

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

任何提示,想法建议?

1 个答案:

答案 0 :(得分:0)

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

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

从上面的URL中可以看出:“在客户端javascript中,由于同源策略,此功能不存在。虽然这个策略对于强大的安全模型是必需的,但程序员通常不能发送和检索对远程服务器的请求。“