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 dinâmicas (jsp, php, aspx) é o mesmo.
function showjson(json){
alert(json.url);
}
如果引用的js或动态页面里有 showjson({"url":" http://www.bejson.com "});这行代码的话,那就会弹出 http://www.bejson.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 parâmetro:
< ?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.bejson.com"})';
?>
Solicitação e função de retorno em PHP:
$("#getuserp").click(function(){
$.getScript("//www.bejson.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.bejson.com/test/userinfop.php página,
页面里输出了 showjson({"url":" http://www.bejson.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 parâmetros 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.bejson.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: