none
llamada de ajax desde JQuery RRS feed

  • Pregunta

  • Hola a todos estoy teniendo un problema tonto pero no veo la solución, el tema es que hago una llamada Ajax desde un script dentro de la propia vista y funciona, pero en cuanto traslado el código de JQuery a un archivo .js y lo coloco en el directorio de scripts deja de funcionar, y ya no llega al método de acción del controlador generando el mensaje de error, el código es el siguiente:

    $.ajax({ type: "POST",  url: "Home/AjaxProvincias",

                contentType: 'application/json; charset=utf-8', success: function (resultado) {

                    var cuenta = resultado.length;

                    for (var i = 0; i < cuenta; i++) {

                        inpProv.append("<option>" + resultado[i] + "</option>");

                    }

                },

                error: function (xhr, testStatus, error) {

                    alert("error");

                   }

            });

     creo que tiene que ver con el url pero he probado de todo y no lo consigo

               

           

    lunes, 3 de febrero de 2014 21:18

Respuestas

  • hola

    podrias poner en el codigo javascript la linea

    debugger;

    asi se detiene la ejecucion cuando llega alli y puedes evaluar el valor de la variable que contiene la url que estas invocando

    la pregunta serie, es un problema con la url? o quizas es por otra cosa el error

    Nota: usa IE para que funcione el debug

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    • Marcado como respuesta fjjcent jueves, 6 de febrero de 2014 11:07
    miércoles, 5 de febrero de 2014 10:48

Todas las respuestas

  • hola

    recomendaria que para definir la url ser

    $.ajax({ type: "POST",  url: urlprovincias)",

    por supuesto desde el js no va afuncionar por eso podrias en la pagina definir una seccion de script que sea

    <script>

    var urlprovincias = '@Url.Action("AjaxProvincias", "Home")';

    </script>

    entonces la url la defines en la view y desde el .js usas esa variable para conocer la url que debe invocar

    Asp.Net Mvc Url.Action in external js file?

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    lunes, 3 de febrero de 2014 21:58
  • No sigue dando el error, mañana lo chequearé pero es curioso que el mismo código en la vista funciona sin problemas. Gracias Leandro
    lunes, 3 de febrero de 2014 23:31
  • Estimado fjjcent

    Segun el codigo que envias son dos temas

    1. LA url como bien dices cuando pasas a un arvhivo .js debes pasarle relativa al raiz (alli  
      Tu la tienes: url: "Home/AjaxProvincias", 
      Deberia tener la barra de: url: "/Home/AjaxProvincias",
      Obviamente si no tienes un directorio virtual para tu app, sino que esta publicara en el raiz
      Un metodo es como te comenta Leandro de pasarle desde la vista configuraciones varias

    2. Ademas si envias a un archivo .js hay una variable que no esta definida
      Te hablo de la parte de: inpProv.append
      Supongo que es una variable que por jQuery recuperas pero que

    Todo el codigo que envias es el que quieres pasar a un archivo .js? o hay algo mas?
    Veo o supongo por el codigo que quieres "obtener via ajax el listado de provincias y agregarlas a un select" si es asi pasanos mas codigo y vemos la manera de hacerlo mas "generico" asi te ayuda en otros lados de tu proyecto

    Espero que te sirva de ayuda o guia.


    Jose. A Fernandez | blog: http://geeks.ms/blogs/fernandezja

    martes, 4 de febrero de 2014 23:40
  • hola

    podrias poner en el codigo javascript la linea

    debugger;

    asi se detiene la ejecucion cuando llega alli y puedes evaluar el valor de la variable que contiene la url que estas invocando

    la pregunta serie, es un problema con la url? o quizas es por otra cosa el error

    Nota: usa IE para que funcione el debug

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    • Marcado como respuesta fjjcent jueves, 6 de febrero de 2014 11:07
    miércoles, 5 de febrero de 2014 10:48
  • Ya está solucionado Leandro, me estaba volviendo loco, el problema era que IE no ejecutaba el código que cambiaba en Visual Studio sino el que tenía almacenado en la caché por eso por muchos cambios que hicieras siempre fallaba hasta que borré la caché, estos problemas te pueden volver loco.

    Gracias Leandro

     
    jueves, 6 de febrero de 2014 11:07