Esta tradução de: o que é JSON correta no conteúdo do tipo?
Brincando with've sido o I JSON por algum tempo, a apenas empurrando-o texto como ele e não tem qualquer dano (que o que eu conheço), mas o que eu gostaria de começar as coisas fazendo corretamente. Fui mexer JSON período tempo, assim como a introdução do texto, e não faz mal a ninguém (que eu saiba), mas eu quero fazer as coisas direito.
Eu ter visto o I SO muitos o Supostas "padrões" para JSON para o conteúdo do tipo: eu vi assim muitos dos chamados "padrão" para o tipo de conteúdo JSON:
application/json
application/x-javascript
text/javascript
text/x-javascript
text/x-json
Mas qual é o correto, ou melhor ? Mas qual é o certo, ou o melhor? Percebi que há segurança e navegador problemas de suporte que variam entre eles. Achei as questões de segurança e suporte de navegação entre eles.
A saber Semelhante há o I Pergunta, o que acontece se MIME do tipo a ser retornado por JSON é uma API REST? Eu sei que há um problema semelhante, se a API REST retorna JSON, que era tipo MIME? , Mas o que eu gostaria de uma resposta um pouco mais alvejado. Mas eu quero uma resposta mais específica.
# 1 andar
Referência: https://stackoom.com/question/20Ii/ Qual é o tipo de conteúdo JSON correto
Casa # 2
JSON é o tipo de conteúdo correto application/json
a menos que você usar JSONP , também conhecido como JSON com padding, na verdade é JavaScript, de modo que o tipo de conteúdo correto será application/javascript
.
Casa # 3
Dúvida de que HÁ Não application/json
está no melhor MIME do tipo A JSON para a resposta. Não há dúvida, application/json
é a melhor resposta JSON MIME tipo.
O que eu tinha alguma preferência Experiência WHERE Mas o que eu tinha que usar application/x-javascript
Por causa de alguma compressão e delinquência. No entanto, devido a alguns problemas de compressão, eu tenho que usar um pouco de application/x-javascript
experiência. Hospedagem compartilhada ambiente de hospedagem é o meu com GoDaddy . Eu consegui ambiente com GoDaddy hospedagem compartilhada. Eles não permitem que me para servidor mudança configurações. Eles não vão deixar-me mudar a configuração do servidor. Eu tinha adicionado a O código a seguir a I meu web.config
arquivo para comprimir respostas. Eu tenho o seguinte código para adicionar ao meu web.config
arquivo em uma resposta comprimida.
<httpCompression>
<scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll"/>
<dynamicTypes>
<add mimeType="text/*" enabled="true"/>
<add mimeType="message/*" enabled="true"/>
<add mimeType="application/javascript" enabled="true"/>
<add mimeType="*/*" enabled="false"/>
</dynamicTypes>
<staticTypes>
<add mimeType="text/*" enabled="true"/>
<add mimeType="message/*" enabled="true"/>
<add mimeType="application/javascript" enabled="true"/>
<add mimeType="*/*" enabled="false"/>
</staticTypes>
</httpCompression>
<urlCompression doStaticCompression="true" doDynamicCompression="true"/>
Usando isso, as páginas .aspx foi comprimido com g-zip, mas respostas JSON não eram. Ao usar esta opção, página .aspx usando a compressão g-zip, mas a resposta JSON descompactado. Eu adicionado eu adicionei
<add mimeType="application/json" enabled="true"/>
nas seções estáticas e tipos dinâmicos. estática e seção de tipo dinâmico. Mas isso não respostas JSON compressa em tudo. Mas não vai resposta JSON compressa.
Depois disso, removida deste tipo recentemente adicionado e adicionados mais tarde, eliminou este tipo recentemente adicionado e adicionou
<add mimeType="application/x-javascript" enabled="true"/>
tanto na estática e seções tipos dinâmicos , e mudou o tipo de resposta na seção estática e dinâmica de tipos, e mudar o tipo de resposta
.ashx (Asynchronous Handler) para .ashx (manipulador assíncrono)
application/x-javascript
E agora eu descobri que minhas respostas JSON foram comprimido com g-zip. Agora, eu encontrei a minha resposta JSON tem sido a de compressão de uso g-zip. Então, eu, pessoalmente, recomendo a utilização para que eu, pessoalmente, recomendo o uso de
application/x-javascript
SE você quiser a compressa somente suas respostas JSON EM UM Hospedagem Compartilhada Ambiente . Somente se você estiver em um ambiente de hospedagem compartilhada quando a resposta JSON comprimido. Na hospedagem compartilhada Porque, eles não a você permitir às Mudanças IIS as configurações. Porque em um servidor compartilhado, eles não permitem que você altere o IIS configuração.
# 4 andares
Se você está em um do lado do cliente ambiente, investigando sobre o suporte cross-browser é obrigatório para uma aplicação web bem apoiado. Se você está no ambiente do cliente, bom para suporte a aplicativos Web, cross-browser devem ser investigados apoiar.
At The HTTP direito Content-Type seria application/json
, já que os outros Destaque também, mas alguns clientes não lidar com isso muito bem, é por isso que jQuery recomenda pelo O padrão text/html
. HTTP correto Content-Type será application/json
, porque o outro application/json
também tem sido destacada, mas um alguns clientes não lidar com isso tão jQuery é recomendado o uso do padrão text/html
.
Casa # 5
É um JSON específica de domínio Língua (DSL) eo formato A Independent Dados de JavaScript, e como a sua própria tem o MIME tipo, application/json
. O JSON é uma linguagem específica de domínio (DSL), e um formato de dados independente JavaScript, tendo assim seu próprio MIME tipo application/json
. Respeito pelos tipos MIME é, naturalmente, orientados para o cliente, SO text/plain
Pode fazer por Transferência de bytes, mas o então você seria Levantando Interpretação no fornecedor do domínio da aplicação desnecessariamente - application/json
. Para MIME tipo de relação é, naturalmente, pela orientada ao cliente e, portanto, text/plain
pode ser para a transmissão de byte, mas então você vai desnecessariamente empurrar o fornecedor irá explicar o -Application domínio de aplicação application/json
. Você transferência via XML text/plain
? Você vai passar text/plain
XML transferência é?
Mas, honestamente, a sua escolha de MIME do tipo é um conselho para no cliente quanto ao modo de interpretar no The DATA- text/plain
ou text/HTML
(o quando não HTML é) é como do tipo erasure- é tão informativo quanto fazer todos os seus objetos de do objeto digitar uma digitado idioma. No entanto, honestamente, você seleciona o tipo MIME é fornecer conselhos sobre como interpretar os dados para o cliente - text/plain
text/HTML
ou text/HTML
(se não HTML quando) basta digitar apagamento - e tudo isso tornou-se objetos do tipo de objeto como não há nenhuma informação de digitar em um idioma .
Nenhum navegador runtime eu conheço vai demorar um documento JSON e automaticamente torná-lo disponível para o tempo de execução como um objeto acessível JavaScript sem intervenção, mas se você estiver trabalhando com um cliente aleijado, que é um assunto completamente diferente. Tanto quanto eu sei, sem vista ele vai usar o documento em tempo de execução JSON e automaticamente usá-lo como um objeto para a execução de JavaScript acessíveis sem a necessidade de intervenção, mas se você estiver usando um cliente com deficiência, seria completamente diferente. Isso não está no todo, mas história- RESTful JSON Serviços Muitas vezes campo não têm têm tempos de execução de JavaScript, mas não interrompe-O COMO UM JSON Viável-los a utilizar o formato de intercâmbio de dados. No entanto, esta não é toda a história - RESTO de estilo serviços JSON muitas vezes não têm JavaScript tempo de execução, mas como um formato viável intercâmbio de dados uso JSON não vai impedi-los. Clientes que estão aleijados ... Se o então o que seria talvez o Considere Injection AN HTML Via Ajax templates serviço em seu lugar. Se o cliente está paralisado ...... então eu poderia considerar a adoçãoAjax injeção HTML serviço de modelo.
Application /! JSON application / JSON!
Casa # 6
Para JSON: para JSON:
Content-Type: application/json
Para o JSON-P : Para o JSON-P :
Content-Type: application/javascript