?Qué es JSONP? JSONP es una técnica que permite realizar solicitudes de datos a dominios diferentes al de la página web que hace la solicitud. ?Cómo se utiliza JSONP? Se utiliza a?adiendo un script a la página que llama a un recurso externo, el cual debe devolver un script en formato JSONP.
Primero hay que saber.
El principio fundamental de JSONP es que la página objetivo llama a un método de la página local y le pasa parámetros.
Las páginas dinámicas que usamos comúnmente son jsp, php, aspx.
?Por qué se necesita JSONP?
Debido a las restricciones de seguridad del navegador, los datos no se pueden solicitar directamente entre dominios (incluyendo diferentes dominios raíz, subdominios o diferentes puertos), a menos que el dominio de destino te autorice a acceder. Por ejemplo, configurando crossdomain.xml o autorizando en los encabezados HTTP.
Sin embargo, crossdomain.xml permite que los sitios web configurados accedan a todos los datos, y la configuración de los encabezados es muy complicada.
Por lo tanto, se puede configurar jsonp en los datos devueltos autorizados por ti para permitir que esta interfaz permita a todos los llamadores obtener datos.
El principio de JSONP.
jsonp es el principio de utilizar una función de retorno de llamada.
En una página web, si introduces el js de otra página, el js de esa página puede llamar al código de tu página.
La solicitud directa de JavaScript y el código JavaScript generado en páginas dinámicas (JSP, PHP, ASPX) tienen el mismo efecto.
La primera forma de JSONP es cargar el objetivo en forma de JavaScript, aunque en realidad el otro lado sea un PHP.
A continuación, solicitamos en esta página.
http://www.ibilibili.com/static/js/forbejson/userinfo.php
Los datos de la página, este página PHP tendrá una función de retorno de llamada showjson, que invocará el método showjson de nuestra página bejson y pasará un JSON como argumento:
<?php
// Aquí está en la página PHP, llamando al método showjson, este método debe coincidir con el método de callback definido anteriormente en la página local.
Porque es por...
cargado en forma de archivo javascript
Por lo tanto, hará una llamada de retorno a la página local showjson (ver la flecha verde) y pasará los parámetros JSON (ver la flecha roja), por lo que se abrirá la URL dentro del JSON.
Utiliza directamente ajax de jQuery para solicitar jsonp.
Gracias.
calabaza
Indica el error en el código y proporciona el código correcto.
?x
$.ajax({
? ? url:'//www.0437gcw.com/test/userinfop.php',
? ? type:"GET",
? ? ? ? ? ?dataType:"jsonp",
? ? ? ? ? ?jsonp: false,
? ? ? ? ? ?jsonpCallback: "showjson", // El valor aquí debe ser el mismo que el nombre de la función de callback.