Pergunta

Se você está construindo uma AJA~Xy app, existem desvantagens para usar JSONP pedidos/respostas, mesmo se você não estiver planejando em qualquer cross-domain pedidos?

A única coisa que posso pensar é que, há um par de bytes extra para o retorno de chamada wrapper...

Editar:

Eu encontrei este o que também sugere security and error handling como potenciais problemas...

Não há manipulação de erro.O script injection ou funciona, ou não.Se há um erro de o injection, ele vai bater a página, e curto de uma janela grande manipulador de erro (ruim, ruim, muito ruim), você precisa ter certeza de que o valor de retorno é válido na server side.

Eu não acho que error handling é muito de um problema...a maioria de nós gostaria de usar uma biblioteca para gerar o JSON...o bem-formedness de minha resposta não é uma preocupação para esta pergunta.

e segurança:

Há documentos na web que pode ajudar, mas como uma verificação superficial, gostaria de verificar o indicador no server side script.

parece que este é um problema potencial com qualquer tipo de resposta...certamente, não há nada de exclusivo JSONP na área de segurança...?

Foi útil?

Solução

Desvantagem?É bastante limitado - você disparar um "GET" solicitar e obter de volta algum script que é executado.Você não receba tratamento de erro se o servidor lança um erro, então você precisa quebrar todos os erros em JSON bem.Você realmente não pode cancelar ou repetir a solicitação.Você está à mercê dos vários navegador autor opiniões de "corrigir" o comportamento dinamicamente gerado <script> as tags.A depuração é um pouco mais difícil.

O que disse, eu usei ele em uma ocasião, e não sofria.YMMV.

Outras dicas

Recuperação de erros quando um jsonp falha de chamada é possível.

http://code.google.com/p/jquery-jsonp/

Espero que ajude.

Eu diria que a maior limitação pode ser a sobrecarga extra para ter o navegador compor uma tag de script para chamar o servidor.Além de JSONP é realmente considerado AJAX, pois, na verdade, não usar o objeto XMLHttpRequest?

Aqui está outro bit você pode querer considerar com JSONP..possíveis vazamentos de memória..

http://neil.fraser.name/news/2009/07/27/

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top