0

標準コントローラーによって読み込まれたかみそりページ内から web-api コントローラーからデータを読み込もうとしています。

ただし、 $.getJSON() を実行しようとすると、 getJSON メソッドが呼び出しの前に元のコントローラー名を追加するため、失敗します。どうすればこれを回避できますか?

例: Razor ビューがコントローラー MyController から読み込まれます。メソッドを実行したい ExplorerApi という webapi コントローラーがあります。だから私が呼び出すカミソリビュー内から

$.getJSON("api/explorerapi/getavailablegroups?userid=marcel", function (data))

jQuery が前に MyController を追加し、次のように変換したため、これは失敗します。

$.getJSON("MyController/api/explorerapi/getavailablegroups?userid=marcel", function (data))

編集 -

ブラウザーから Web API を呼び出すと、ブラウザーに入力するだけで json データが返されますhttp://localhost:59475/api/ExplorerApi/getavailablegroups?userid=marcel&context=pf。ただし、以下のコードを使用すると、元のコントローラー名が前に追加されます!

var uID = sessionStorage.getItem("symUserID");

            var v = "userid=" + uID + "&context=portfolio";
            $.getJSON("api/explorerapi/GetAvailableGroups?" + v, null, function (data) {
                debugger;
            })
            .fail(
            function (jqXHR, textStatus, err) {
                debugger;
                alert(err);
            });

警告メッセージは次のように表示されます: 見つかりません - データの jqXHR.responseText ロードを調べると、エラー 404 があり、実行しようとしているステートメントのさらに下に、元のコントローラーの名前が配置されています!!

要求された URL http://localhost:59475/MyController/api/explorerapi/GetAvailableGroups?userid=marcel&context=portfolio&_=1358064733267

4

1 に答える 1

1

「api/explorerapi/GetAvailableGroups?」の代わりに 「/api/explorerapi/GetAvailableGroups?」を使用します。

于 2013-01-13T08:26:16.407 に答える