via type documento descargar content con como archivos archivo jquery ajax json firefox

type - estado jQuery AJAX "200 OK", pero no hay respuesta de datos



jquery ajax response content type pdf (3)

jQuery:

$.ajax({ url : url, type : ''GET'', dataType: ''json'', data: { ''FN'' : ''GetPages'', ''PIN'' : ''7659'' }, xhrFields: { withCredentials: true }, crossDomain: true, success: function(data) { alert(''succsess''); console.log(''data'', data); }, error: function (xhr, ajaxOptions, thrownError) { alert(''error''); console.log(xhr.status); console.log(thrownError); } });

Firebug Firefox Network

Error Firebug http://s14.directupload.net/images/121123/8ar5vljg.png

Lo que pasa

El evento AJAX "error:" se activa y mis resultados de console.log son:

xhr.status -> 0

throwwnError -> (cadena vacía)

¿Esto es normal? Cuando escribo la URL en un navegador recibo una descarga de archivos con el contenido JSON, no debería ser un problema, ¿verdad?


Prueba este

$.ajax({ type : "GET", url : URL, data: { ''FN'' : ''GetPages'', ''PIN'' : ''7659'' }, xhrFields: { withCredentials: true }, crossDomain: true, dataType : "jsonp", jsonp : "jsoncallback", jsonpCallback : "SMS", cache : true, success : function(service_data) { }, error : function(msg) { alert(JSON.stringify(msg)); } });


No puedo descifrar de la imagen, pero si intentas enviar una solicitud AJAX a un dominio diferente, necesitas usar JSONP , la simple solicitud AJAX no será suficiente

Intenta cambiar dataType: ''json'' a dataType: ''jsonp''

y agregar callback=? a su URL


Gracias a @CrimsonChin sé que es un problema de Política de Mismo Origen

En informática, la misma política de origen es un concepto de seguridad importante para varios lenguajes de programación del navegador, como JavaScript. La política permite que los scripts que se ejecutan en páginas que se originan en el mismo sitio accedan a los métodos y propiedades de los demás sin restricciones específicas, pero impide el acceso a la mayoría de los métodos y propiedades en las páginas de diferentes sitios. [1]

(de http://en.wikipedia.org/wiki/Same_origin_policy )

Conceder a los clientes JavaScript acceso básico a sus recursos simplemente requiere agregar un encabezado de respuesta HTTP, a saber:

Access-Control-Allow-Origin: * Access-Control-Allow-Origin: http://foo.example.com

(de http://enable-cors.org/ )

Ofc, también podría funcionar convertir la respuesta JSON en una respuesta JSONP . Thx @djakapm