我有一个使用AngularJs和WebApi构建的应用程序。我按下按钮时尝试下载文件。这是ng-click的代码:
$scope.download = function (documentObj) {
if (documentObj && documentObj.FileName)
{
var urlParams = "sId=" + documentObj.IdStudy + "&fId=" + documentObj.IdRequiredFile + "&fName=" + documentObj.FileName;
document.location = "api/document/download?" + urlParams;
}
};
这在Chrome和Mozilla中运行良好,但在IE中却不行。在任何IE浏览器中 我注意到在运行此代码后,WebApi的URL在IE中非常不同。更具体地说:
我工作的视图有以下网址:http://localhost:54094/admin/studies/edit/1 在我调用应该开始下载的ng-click功能后,我看到以下结果:
因此,在IE中,不会调用正确的WebApi服务。
我错过了什么或做得不对?任何提示将不胜感激。
谢谢。
答案 0 :(得分:1)
应该使用绝对路径而不是相对路径...只需添加/
document.location = "/api/document/download?" + urlParams;
浏览器会在网站根目录中查找api
目录,假设您未在页面中使用<base>
标记