为Angular $ http.get / .post提供URL的最佳方法
-
21-12-2019 - |
题
我使用的是用mvc4的角度。我想使用$ http.get()从JavaScript调用MVC控制器方法。它需要一个URL(显然)。我希望这是一个相对的路径,但我该如何写下这一点?我的控制器处于控制器/ API / ExampleController。即使我将JavaScript文件移动到另一个位置,我也希望解析的路径,这意味着我希望与JavaScript文件相对的应用程序root。我已经尝试了“〜/ controllers / api / mequplecontrollermethod”和“控制器/ api / mequplecontroller /方法。
解决方案 2
谢谢你的想法,但这种事情是我在寻找的东西:
配置webapiconfig以添加这样的路由(应将其默认为默认值):
config.Routes.MapHttpRoute(
name: "ApiMethods",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
.
所以现在我可以去$ http.get('api / {controller} / {method}') 其他提示
$location
服务确实提供来自URL的信息。因此,您可以构建某些东西,然后使主机和端口动态:
var url = $location.host() + '/Controllers/Api/ExampleControllerMethod';
.
从文档中:
**url: http://www.example.com/base/path?a=b#h**
$location.protocol() = http
$location.host() = www.example.com
$location.port() = 80
$location.path() = /path
$location.search() = {"a":"b"}
$location.hash() = h
. 对我有关的是将URL提供为“/ contractername / action”(而不是“controllername / action”)
不隶属于 StackOverflow