La mejor manera de proporcionar URL a $ http.get / .post
-
21-12-2019 - |
Pregunta
Estoy usando angular con MVC4.Me gustaría llamar a un método de controlador MVC desde JavaScript usando $ http.get ().Requiere una URL (obviamente).Me gustaría que esto sea un camino relativo, pero ¿cómo escribo eso?Mi controlador está en controladores / API / Examplecontroller.Me gustaría que el camino resolviera incluso si muevo el archivo de JavaScript a otra ubicación, lo que significa que me gustaría que la ruta sea relativa a la raíz de la aplicación en lugar del archivo JavaScript.He intentado "~ / controladores / API / EXAMPLECON CONTROLERTETHOD" y "Controladores / API / EXAMPLECONTROLER / MÉTODO.
Solución 2
Gracias por las ideas, pero este tipo de cosas es lo que estaba buscando:
Configure el WebAPICONFIG para agregar una ruta como (debe tenerla como predeterminada):
config.Routes.MapHttpRoute(
name: "ApiMethods",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
Así que ahora puedo ir $ http.get ('api / {controlter} / {método}')
Otros consejos
El servicio $location
proporciona información de la URL.Por lo tanto, podría construir algo para luego hacer que el host y el puerto dinámico:
var url = $location.host() + '/Controllers/Api/ExampleControllerMethod';
de la documentación:
**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
Lo que funcionó fue proporcionar la URL como "/ controlerName / acción" (en lugar de "ControllerName / Acción")