0

私は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
  • エラー
  • ""

問題はクロスドメインの get リクエストであると確信しています。ISAはどういうわけか私をにリダイレクトする必要があります

"http://internal.domain/WebSite"

しかし、それは失敗します。ISA を経由せず$.get、同じドメインからリクエストを行っても問題ありません (localhost からサーバーへのように、クロスドメインを試みると失敗します)。

ASP.NET MVC-3 を使用しています。相対 URL の実装に失敗しました。それらは最終的に次の形式になります

「http://サーバー名/サイト名/Controller/ControllerService?クエリ」

あるべきとき

「http://サーバー名/サイト名/ControllerService?クエリ」

したがって、それを修正する方法を知っていない限り、相対 URL はオプションではありません (そして、ISA を通過する必要があるため、それが何かを解決するかどうかは真剣に疑問です)。現在のパス「http://servername/siteName」を解決するヘルパー メソッドがあります。

ヒント、アイデアの提案はありますか?

4

1 に答える 1

0

クロスドメインの ajax リクエストを実行することはできません。それを行う方法はいくつかありますが、組み込みライブラリではセキュリティ上の理由から許可されていません。

http://www.ajax-cross-domain.com/は、これを行う方法を提供します。試したことがないので保証はできませんが。

ただし、上記の URL から: 「クライアント側の JavaScript では、Same Origin ポリシーが原因で、この機能は存在しません。このポリシーは堅牢なセキュリティ モデルに必要ですが、プログラマーは多くの場合、要求を送信および取得したいという点で障害があります。リモートサーバー。」

于 2011-10-04T14:36:08.550 に答える