web api失败,因为$ .getJSON添加了原始控制器的名称

时间:2013-01-13 07:55:13

标签: jquery

我正在尝试从标准控制器加载的剃刀页面中加载来自web-api控制器的数据。

但是,当我尝试执行$ .getJSON()时,它会失败,因为getJSON方法会在调用前添加其原始控制器名称。我该如何解决这个问题?

示例:从控制器MyController加载剃刀视图。我有一个名为ExplorerApi的webapi控制器,我希望在其上执行一个方法。 所以从剃刀里面看我打电话

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

失败,因为jQuery在前面添加了MyController,因此将其转换为:

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

编辑 -

我可以从浏览器调用web api,只需在浏览器中输入http://localhost:59475/api/ExplorerApi/getavailablegroups?userid=marcel&context=pf即可快乐地返回json数据! 但是使用下面的代码,它会在前面添加它的原始控制器名称!

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,并在其尝试执行的语句中进一步向下放置原始控制器的名称! !

请求的网址http:// localhost:59475 / MyController / api / explorerapi / GetAvailableGroups?userid = marcel& context = portfolio& _ = 1358064733267

1 个答案:

答案 0 :(得分:1)

而不是“api / explorerapi / GetAvailableGroups?”使用“/ api / explorerapi / GetAvailableGroups?”。