5
respostas

impossibilidade de tratar os dados na função de callback vindas por json via JSONP

Boa tarde, pessoal. Estou tentando usar esse codigo abaixo para acessar umas informações desse endereço "localhost:8080/MeuProjeto/v1/", que retorna um JSON. Esse endereço retorna um JSON como abaixo:

[{"TotalTamanho":100,"id":"SistemaGestão","Total":6,"Siglas":0,"name":"Planeta","TotalDemandas":5}]

Procurei deixar o código abaixo muito parecido com o exemplo constante no w3. Mas não estou conseguindo acessar a função de callback, pois não está aparecendo nem a palavra teste no log do console. O que será q está faltando? Estou recebendo status 200 no endereço no console do firefox. Alguem consegue me dar alguma luz?

window.onload = init
function init() {
    var s = document.createElement("script");
    s.src = "localhost:8080/MeuProjeto/v1/?callback=jsonpRetorno";
    document.body.appendChild(s);
}

function jsonpRetorno(data) {    
  console.log("teste");    
  document.getElementById("demo").innerHTML = data.name;
}

no w3:

window.onload = init
function init() {
    var s = document.createElement("script");
    s.src = "demo_jsonp2.php?callback=myDisplayFunction";
    document.body.appendChild(s);
}

function myDisplayFunction(myObj) {

  document.getElementById("demo").innerHTML = myObj.name;
}
5 respostas

Oi Rogerio, tem como a gente ver o script que está sendo carregado no seu /MeuProjeto/v1 ?

Esse script seria o código que gera o json? não entendi muito bem.

Isso, o que gera o JSON

Como esse script vem de outro setor, não estou com acesso a esse script, infelizmente. Tem algum outro jeito de contornar isso? Porque eu pensei que se eu coloco uma determinada url no meu navegador e me retorna um json, seria só fazer um script de jsonp com esse endereço, chamar a função de callback e gerenciar os dados vindos desse json. Não é assim que funciona?

O problema é que o script carregado do outro projeto não está executando o callback, então pode ser um problema no outro script ou mesmo na forma como você está passando o parâmetro.

O outro script precisa estar preparado para aceitar esse callback, se não estiver, não funciona. Então talvez seja o caso de você verificar com o outro setor como isso deveria funcionar.