我正在尝试从标准控制器加载的剃刀页面中加载来自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
答案 0 :(得分:1)
而不是“api / explorerapi / GetAvailableGroups?”使用“/ api / explorerapi / GetAvailableGroups?”。