微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用angularjs在c#中调用API

嗨,我使用下面的代码调用我的API

$http.get('/api/controller/method?param=value').
           then(function (response) {
               if (response.status == 200) {
                   console.log(response.data);
               }
           });

它在我的本地机器(http://localhost/api/controller/method?param=value)中工作正常.

但是当我使用应用程序名称app在服务器中部署它时,它无法调用API(http://server-ip/app/api/controller/method?param=value).

显然,它不会,因为URL是不同的.那么在c#中调用API的正确方法是什么,以便它可以在任何服务器中运行.

我尝试过的:
1. URL.Action:在这种情况下不起作用.
2.我不想使用@ HTML.hidden
3.使用或不使用斜杠(/)启动

解决方法

我通常使用这样的工厂解决这个问题 –

首先在.cshtml页面中加载所需的所有角度js.
然后像这样为baseURL创建一个工厂 –

function(angular){
    var module = angular.module('NameOfMyModule');  //gt the module
    module.factory('BaseUrl',function(){
         return '@Url.Action("Action","Controller")';
    });
}(window.angular);

然后将BaseURL注入控制器内 –

....
module.controller('SomeController',[....,'BaseUrl',function(....,BaseUrl){
     $scope.baseUrl = BaseUrl;

}]);

....`

最后将其添加到网址中

$http.get($scope.baseUrl + /...../).then(....);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐