Melhor tipo de conteúdo para servir JSONP?

120

Eu tenho um serviço da web que, quando chamado sem especificar um retorno de chamada, retornará uma string JSON usando application/jsoncomo tipo de conteúdo.

Quando um retorno de chamada é especificado, ele envolve a cadeia JSON em uma função de retorno de chamada, portanto, não é mais um JSON válido. Minha pergunta é: devo servi-lo como application/javascriptneste caso ou ainda usá-lo application/json?

Zach
fonte

Respostas:

147

Use application / javascript. Dessa forma, os clientes podem confiar no tipo de conteúdo sem precisar verificar manualmente se uma resposta tem preenchimento ou não.

John Millikin
fonte
1
Ele falha no IE 9 com a mensagem "SEC7112: o script do xyz.com foi bloqueado devido à incompatibilidade de tipos de mímica" Alguma idéia do porquê?
Pit Digger
Tipo de conteúdo "application / javascript" pode incompatibilidade com "text / javascript" o especificado na tag script (ou esperado por padrão, por algum motivo)
Ievgen Lukash
Com base nas informações deste artigo, text / javascript e application / javascript funcionariam no IE 9. Gostaria de saber no @ pit-digger se o servidor simplesmente não estava retornando o cabeçalho correto do tipo de conteúdo.
spig
122

Use application/json conforme rfc4627.txt se o que você retornar for JSON simples.

Se você retornar JavaScript (que é realmente o que JSONP é), use application/javascript como por rfc4329.txt

Florian Bösch
fonte