您好,我正在使用以下代码调用我的 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.调用以或不以斜杠(/)开头
最佳答案
我通常使用像这样的 factory
来解决这个问题 -
首先,在 .cshtml 页面中,我加载了所有需要的 Angular js。 然后像这样为 baseURL 创建一个工厂 -
function(angular){
var module = angular.module('NameOfMyModule'); //gt the module
module.factory('BaseUrl', function(){
return '@Url.Action("Action", "Controller")';
});
}(window.angular);
然后在 Controller 中注入(inject) BaseURL
-
....
module.controller('SomeController', [...., 'BaseUrl', function(...., BaseUrl){
$scope.baseUrl = BaseUrl;
}]);
....`
最后在url中加上它
$http.get($scope.baseUrl + /...../).then(....);
关于c# - 如何使用angularjs在c#中调用API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34262574/