加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-17 06:58:44 所属栏目:安全 来源:网络整理
导读:嗨,我使用下面的代码调用我的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)
嗨,我使用下面的代码调用我的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(....);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读