Estoy usando el método anterior y funciona bien con un parámetro en la URL.
por ejemplo, Students/getstud/1
donde se aplica el formato controlador / acción / parámetro.
Ahora tengo una acción en el controlador de Estudiantes que acepta dos parámetros y devuelve un objeto JSON.
Entonces, ¿cómo publico datos con el $.getJSON()
método de publicación?
También se aceptan métodos similares.
El punto es llamar a una acción del controlador con AJAX.
get
ingetJSON
significa usar GET para obtener json.Respuestas:
El método $ .getJSON () realiza un HTTP GET y no un POST. Necesitas usar $ .post ()
En esa llamada,
dataToBeSent
podría ser cualquier cosa que desee, aunque si está enviando el contenido de un formulario html, puede usar el método serializar para crear los datos para el POST desde su formulario.fuente
Esta es mi solución de "una línea":
Para usar jsonp y el método POST, esta función agrega el parámetro GET "callback" a la URL. Esta es la forma de usarlo:
El servidor debe estar preparado para manejar el parámetro GET de devolución de llamada y devolver la cadena json como:
en el que "jsonp000000" es el valor GET de devolución de llamada.
En PHP, la implementación sería como:
Hice algunas pruebas entre dominios y parece funcionar. Sin embargo, todavía necesito más pruebas.
fuente
?callback
? en url? Eso hizo que la devolución de llamada no fuera llamada por mí. También agreguéJSON.stringify(data)
. +1, publicación útil!jQuery.getJSON = function(url, data, func) { return $.get(url+(url.indexOf("?") == -1 ? "?" : "&")+"callback=?", data, func, "json"); }
Simplemente agregue estas líneas a su
<script>
(en algún lugar después de que se cargue jQuery pero antes de publicar cualquier cosa):¡Reemplaza (algunos / todos)
$.getJSON
con$.postJSON
y disfruta!Puede utilizar las mismas funciones de devolución de llamada de Javascript que con
$.getJSON
. No se necesita ningún cambio del lado del servidor. (Bueno, siempre recomienda el uso$_REQUEST
en PHP. Http://php.net/manual/en/reserved.variables.request.php , Entre $ _REQUEST, $ _GET y $ _POST cuál es el más rápido? )Esto es más simple que la solución de @ lepe.
fuente
Tenía un código que estaba haciendo getJSON. Simplemente lo reemplacé con publicación. Para mi sorpresa, funcionó
fuente
Solo usé publicación y un if:
fuente
$.getJSON()
es bastante útil para enviar una solicitud AJAX y recuperar datos JSON como respuesta. Por desgracia, la documentación de jQuery carece de una función hermana que debería nombrarse$.postJSON()
. ¿Por qué no usarlo$.getJSON()
y terminar? Bueno, tal vez desee enviar una gran cantidad de datos o, en mi caso, IE7 simplemente no quiere funcionar correctamente con una solicitud GET.Es cierto, actualmente no hay ningún
$.postJSON()
método, pero puede lograr lo mismo especificando un cuarto parámetro (tipo) en la$.post()
función:Mi código se veía así:
fuente
si solo tiene dos parámetros, puede hacer esto:
fuente