Tengo un problema extraño cuando uso la llamada JQuery en mi proyecto ASP.NET MVC. Descubrí que la llamada Ajax da 404 (error de recurso no encontrado). Pero cuando uso la llamada URL GET habitual, puedo llamar al servidor sin problemas. ¿Alguna idea de por qué esto es así?La llamada de JQuery Ajax da el error 404 "Recurso no encontrado", pero la llamada a la URL normal es Fina
Esta mi código ASP.NET MVC
public class ViewRecordController: Controller
{
public JSONResult GetSoftwareChoice(string username)
{
return Json(username);
}
}
Este es mi código de jQuery:
$(function() {
$("#username").click(function() {
$.getJSON("ViewRecord/GetSoftwareChoice", {username:'123'},
function(data) {
alert(data);
});
});
});
Lo anterior jQuery me da un error 404. Aparentemente, el ViewRecord/GetSoftwareChoice
no se encuentra en el servidor, en lo que respecta a la llamada AJAX.
Pero si escribo esto en mi navegador web:
http://myapp/ViewRecord/GetSoftwareChoice?username=123
entonces no hay problema.
Esto es muy extraño, de hecho.
Sólo en caso de si está interesado, este es mi ruta:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = "" } // Parameter defaults
);
}
Editar: entro en mi código, y encontraron que la llamada URL es ViewRecord/GetSoftwareChoice?username=123
.
pregunta relacionada: Select Element inside Form not working in JQuery
.... o en "/ ViewRecord/GetSoftwareChoice". la barra diagonal significa una ruta absoluta, incluso si no incluye el nombre de host – Javier
Gracias, Javier. Incluí tu respuesta en mi respuesta. – Graviton
Creo que Johhny G (y Jarrod en los comentarios) ya dieron a entender esta respuesta. – Charlino