我正在尝试从标准控制器加载的剃须刀页面中的 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,并且在它尝试执行的语句的下方放置了原始控制器的名称!
请求的 URL http://localhost:59475/MyController/api/explorerapi/GetAvailableGroups?userid=marcel&context=portfolio&_=1358064733267