Obtener datos de la respuesta ajax

Para la escuela, tengo que desarrollar un cliente de Twitter con ASP.NET.

En la aplicación, tengo una lista de tweets con un enlace de eliminación. Este enlace se crea con el asistente Ajax.ActionLink () y especifiqué una función de devolución de llamada para el evento OnSuccess.

Este enlace está bien: la acción se realiza, la devolución de llamada se activa PERO no puedo acceder a los datos enviados en la respuesta de Ajax.

La devolución de llamada recibe solo un argumento. Aquí está el volcado de este objeto:

>> Sys.Mvc.AjaxContext
$0: 0
$1: null
$2: Sys.Net.XMLHttpExecutor
$3: Sys.Net.WebRequest
$4: null

¿Dónde está mi responseText? Sé que la respuesta tiene un contenido (según las herramientas de desarrollo de Chrome) y realmente quiero acceder a él.

Bonificación: ¿el cliente Ajax puede analizar automáticamente la respuesta como JSON (la acción devuelve JSON correctamente con el método JSON)?

Gracias ! ;)


La fecha límite de este proyecto escolar ha terminado. Usé get_data en la respuesta.

Estoy bastante decepcionado por la falta de documentación para esta necesidad trivial. Incluso ahora conozco el camino, no puedo encontrar eso en MSDN ... Es una pena. :(

De vuelta a mi precioso Ruby on Rails, me siento mejor.

Buen día y gracias por tu ayuda de todos modos! :)

preguntado el 10 de mayo de 11 a las 13:05

2 Respuestas

Intente llamar a get_object () en su AjaxContext para obtener un objeto javascript o get_data () para obtener el texto. Sin embargo, un método más fácil es hacer que su función OnSuccess tome un argumento que será el objeto devuelto.

public ActionResult ReturnJson()
{
    return Json(new { TestMessage = "Hello, world!" }, JsonRequestBehavior.AllowGet);
}

Y la vista ...

<script type="text/javascript">
    function AjaxSuccess(obj) {
        alert(obj.TestMessage);
    }
</script>

@Ajax.ActionLink("Say Hi", "ReturnJson", new AjaxOptions() { OnSuccess = "AjaxSuccess" })

contestado el 25 de mayo de 11 a las 10:05

Si desea acceder al responseText dentro de su código, no desea usar AJAX (JavaScript y XML asíncronos), desea usar SJAX (JavaScript y XML síncronos).

Cuando use AJAX, su código no esperará el responseText, simplemente continuará ejecutándose, por lo que si intenta hacer referencia a él más adelante en su código, es posible que no funcione, ya que es posible que aún no se haya procesado.

Al usar SJAX, su código esperará el responseText antes de continuar ejecutándose.

No uso ASP.NET, así que no puedo ayudar con el código.

Así es como se hace en JavaScript: JavaScript - AJAX / SJAX - Enviar datos de formulario a un script

contestado el 25 de mayo de 11 a las 09:05

El OnSuccess se llama cuando los resultados regresan - Jason Goemaat

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.