O que é JSONP, o que é JSONP, como usar JSONP.
Devido a restri??es de seguran?a do navegador, os dados n?o podem ser solicitados diretamente entre domínios (incluindo domínios raiz diferentes, subdomínios ou diferentes portas), a menos que o domínio de destino autorize o seu acesso. Por exemplo, configurando crossdomain.xml ou autorizando nos cabe?alhos HTTP.
No entanto, o crossdomain.xml permite que os sites configurados acessem todos os dados, enquanto a configura??o do cabe?alho é bastante complicada.
Portanto, é possível configurar o JSONP nos dados de retorno autorizados para permitir que essa interface permita que todos os chamadores acessem os dados.
JSONP é um princípio que utiliza callbacks para métodos.
Em uma página da web, se você importar o JS de outra página, o JS dessa página pode chamar o código da sua página.
O efeito do JavaScript diretamente solicitado e do código JavaScript gerado em páginas dinamicas (jsp, php, aspx) é o mesmo.
function showjson(json){
alert(json.url);
}
如果引用的js或動(dòng)態(tài)頁(yè)面里有 showjson({"url":" http://www.bjljyy.com "});這行代碼的話(huà),那就會(huì )彈出 http://www.bjljyy.com
Abaixo, vamos fazer um pedido nesta página. http://www.ibilibili.com/static/js/forbejson/userinfo.php Os dados da página, esta página PHP terá uma fun??o de callback chamada showjson, que chamará o método showjson na nossa página bejson e passará um JSON como parametro:
< ?php
// Aqui está a página PHP, chamando o método showjson, este método deve ser consistente com o método de callback definido na página local acima.
echo 'showjson({"url":"http://www.bjljyy.com"})';
?>
Solicita??o e fun??o de retorno em PHP:
$("#getuserp").click(function(){
$.getScript("http://www.bjljyy.com/test/userinfop.php");
});
Ent?o, se fizermos a captura de pacotes, veremos (como na imagem acima) que, ao clicar no bot?o, foi feita uma solicita??o HTTP.
Pedido feito. www.bjljyy.com/test/userinfop.php página,
頁(yè)面里輸出了 showjson({"url":" http://www.bjljyy.com "}) ,
Porque é baseado em carregado na forma de arquivo javascript Portanto, ele fará uma chamada de retorno para a página local showjson (veja a seta verde) e passará os parametros JSON (veja a seta vermelha), resultando na exibi??o da URL contida no JSON.
Obrigado.
caba?a
Identifique o erro no código e forne?a o código correto.
?x $.ajax({
? ? url:'//www.bjljyy.com/test/userinfop.php',
? ? type:"GET",
? ? ? ? ? ?dataType:"jsonp",
? ? ? ? ? ?jsonp: false,
? ? ? ? ? ?jsonpCallback: "showjson", // O valor aqui precisa ser o mesmo que o nome da fun??o de callback.
? ? ? ? ? ?success:function(data){
? ? ? ? ? ? ? ?console.log("Script loaded and executed.");
? ? ? ? ? },
? ? ? ? ? ?error:function (textStatus) { // Fun??o chamada após a falha da solicita??o
? ? ? ? ? ? ? ?console.log(JSON.stringify(textStatus));
? ? ? ? ? }
});
Você usou recentemente: