success error data jquery ajax get response responsetext

error - jquery ajax post



jquery ajax obtener responsetext de http url (9)

Ninguno:

var response = $.ajax({ type: "GET", url: "http://www.google.de", async: false, success : function() { alert (this); } });

Ni:

var response2 = $.get("http://www.google.de", function(data) { alert("Data Loaded: " + data); });

dame un objeto ¿Cómo obtengo acceso al responseText ?


Como dijo Karim, el dominio cruzado ajax no funciona a menos que el servidor lo permita. En este caso, Google no lo hace, PERO, hay un truco simple para solucionar esto en muchos casos. Simplemente haga que su servidor local pase el contenido recuperado a través de HTTP o HTTPS.

Por ejemplo, si estuvieras usando PHP, podrías:

Cree el archivo raíz_web / ajax_responders / google.php con:

<?php echo file_get_contents(''http://www.google.de''); ?>

Y luego modifique su código para conectarse a ese en lugar de al dominio de Google directamente en el javascript:

var response = $.ajax({ type: "GET", url: "/ajax_responders/google.php", async: false }).responseText; alert(response);


Dado que las solicitudes de jQuery AJAX fallan si son de dominio cruzado, puede utilizar cURL (en PHP) para configurar un servidor proxy.

Supongamos que un archivo PHP responde.php tiene estos contenidos:

$url = "https://www.google.com"; $ch = curl_init( $url ); curl_set_opt($ch, CURLOPT_RETURNTRANSFER, "true") $response= curl_exec( $ch ); curl_close( $ch ); return $response;

Su solicitud AJAX debe estar en este archivo respondedor.php para que ejecute la solicitud de dominio cruzado.


En las funciones de jquery ajax, la firma de devolución de llamada correcta es:

function (data, textStatus) { // data could be xmlDoc, jsonObj, html, text, etc... this; // the options for this ajax request }

Dependiendo del tipo de datos que haya solicitado, utilizando el parámetro ''dataType'', obtendrá el argumento ''datos''.

de los documentos:

dataType (String) Predeterminado: Intelligent Guess (xml o html). El tipo de datos que espera recibir del servidor. Si no se especifica ninguno, jQuery pasará inteligentemente responseXML o responseText a su devolución de llamada exitosa, según el tipo MIME de la respuesta.

Los tipos disponibles (y el resultado pasado como primer argumento para su devolución de llamada exitosa) son:

"xml": devuelve un documento XML que se puede procesar a través de jQuery.

"html": devuelve HTML como texto sin formato; Las etiquetas de script incluidas se evalúan cuando se insertan en el DOM.

"script": evalúa la respuesta como JavaScript y la devuelve como texto sin formato. Deshabilita el almacenamiento en caché a menos que se use la opción "caché". Nota: Esto convertirá los POST en GET para solicitudes de dominio remoto.

"json": evalúa la respuesta como JSON y devuelve un objeto JavaScript.

"jsonp": se carga en un bloque JSON utilizando JSONP. Agregará un extra "? Callback =?" hasta el final de su URL para especificar la devolución de llamada. (Añadido en jQuery 1.2)

"texto": una cadena de texto plano.

vea http://docs.jquery.com/Ajax/jQuery.ajax#options



Esto es super viejo, pero espero que esto ayude a alguien. Estoy enviando respuestas con diferentes códigos de error y esta es la única solución que he encontrado que funciona en

$.ajax({ data: { "data": "mydata" }, type: "POST", url: "myurl" }).done(function(data){ alert(data); }).fail(function(data){ alert(data.responseText) });

Debido a que JQuery ha desaprobado las funciones de success y error , es necesario utilizar done y fail , y acceder a los datos con data.responseText cuando fail , y solo con data cuando se done . Esto es similar a la respuesta de @Marco Pavan, pero no necesita ningún complemento de JQuery ni nada para usarlo.



Primero tienes que descargar un complemento de JQuery para permitir las solicitudes de dominio cruzado. Descárguelo aquí: https://github.com/padolsey/jQuery-Plugins/downloads

Importe el archivo denominado query.xdomainsajax.js en su proyecto e inclúyalo con este código:

<script type="text/javascript" src="/path/to/the/file/jquery.xdomainajax.js"></script>

Para obtener el html de una página web externa en forma de texto, puede escribir esto:

$.ajax({ url: "http://www.website.com", type: ''GET'', success: function(res) { var text = res.responseText; // then you can manipulate your text as you wish } });


Simplemente debes reescribirlo así:

var response = ''''; $.ajax({ type: "GET", url: "http://www.google.de", async: false, success : function(text) { response = text; } }); alert(response);


prueba esto

alert( data[''responseText''] );