¿Por qué no se jQuery anexando automáticamente la devolución de llamada JSONP?

StackOverflow https://stackoverflow.com/questions/2414899

  •  19-09-2019
  •  | 
  •  

Pregunta

El $.getJSON() estados de documentación:

  

Si la URL especificada está en un servidor remoto, la solicitud se trata como JSONP lugar. Véase la discusión sobre el tipo de datos en jsonp $ .ajax () para más detalles.

El $.ajax() documentación para los estados de tipo de datos jsonp (énfasis mío):

  

Carga en un bloque JSON usando JSONP. añadir un extra "? Devolución de llamada =?" al final de la URL para especificar la devolución de llamada .

Así que parece que si llamo $.getJSON() con una URL entre dominios, la "devolución de llamada =?" Extra parámetro de forma automática debe conseguir añadido. (Otras partes de la documentación de apoyo de esta interpretación.)

Sin embargo, no estoy viendo que el comportamiento. Si no añado la "devolución de llamada =?" explícitamente, jQuery incorrectamente hace un XMLHttpRequest (que devuelve datos nulos ya que no puedo leer la respuesta multidominio). Si hago añadir explícitamente, jQuery hace correctamente un

Otros consejos

Prueba esto:

var URL = "http://www.geonames.org/postalCodeLookupJSON" +
    "?postalcode=10504&country=US";
function alertResponse(data, status) {
    alert("data: " + data + ", status: " + status);
}
$.ajax({
    url: URL,
    dataType: 'jsonp',
    jsonpCallback: 'alertResponse',
});

Sí, creo que mal entendido. $.getJSON es un atajo para $.ajax({datatype: 'json'.... como dice la documentación. Nunca hace una llamada JSONP menos que se añada el parámetro callback=?.

Estoy utilizando el código de abajo,

$. Ajax ({     url: URL,     Tipo de datos: 'jsonp',     el éxito: function (datos)     {      // hacer algo     }     de error: function (jqXHR, textStatus, errorThrown) {},     jsonpCallback: 'login_callback', });

Pero, devolución de llamada a veces se añade al final de la URL y, a veces, no en IE. Mientras su fina en cromo y FF de trabajo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top