2011-07-14 19 views
7

He estado guardando todos mis archivos json con extensión .txt y trabajaron con llamadas jquery ajax.Extensión de archivo JSON

Cuando cambio la extensión a .json y en mi jquery ajax llamada - jQuery.ajax() - especifico

  • tipoDatos: "json",
  • contentType: "solicitud/json; charset = utf-8 ",

los archivos ya no funcionan. ¿Porque?

¿No deberían todos los archivos json tener una extensión .json? Estoy usando el servidor IIS.

JSON

{ "rows": [ 
    {"row":[ 
    {"cells": [ 
     {"data": "Edit"}, 
     {"data": "030194"} 
    ]} 
    ]}, 
    {"row":[ 
    {"cells": [ 
     {"data": "Add"}, 
     {"data": "030194"} 
    ]} 
    ]} 
]} 

jQuery

jQuery.ajax ({ 
    type: "GET", 
    url: "localhost/ABC.json", 
    dataType: "json", 
    contentType: "application/json; 
    charset=utf-8", 
    cache: "false", 
    success: function(response){} 
}); 

Puede alguien decirme por qué extensión .json no está funcionando? Funciona si lo cambio a .txt

+0

¿Puedes publicar tu código? –

+3

Hay una posibilidad decente de que el problema sea su servidor web. Hay una posibilidad aún mayor de que estés haciendo un uso indebido total de JSON al intentar hacerlo (¿presumiblemente?) Almacenamiento de datos. – riwalk

+3

@ Stargazer712: Mi dinero está en el servidor web. Tipo de contenido/mime no reconocido, por lo que un texto (texto/plano) ya no tiene un 'Content-Type' válido –

Respuesta

0

dataType: "json" no es especificar el tipo de archivo para especificar el tipo de datos que devolverá el servidor. Desde el lado del servidor, por ejemplo, si está utilizando php, debe devolver la cadena json usando la función "json_encode" para que pueda ser aceptada por dataType: "json".

4

La extensión correcta es .json, y el tipo mime es application/json (referencia: this Wikipedia page). En general, sin embargo, debería funcionar con cualquier extensión siempre que su estructura de datos sea válida y su servidor web esté haciendo lo que se supone que debe hacer.

4

IIS viene incluido con un grupo de controladores de tipo MIME. Esto significa que cuando ingresa una URL que termina con, por ejemplo, .png, IIS sabe que se trata de una imagen y envía la respuesta adecuada para decirle al cliente (navegador) que es una imagen (para que pueda representarse como tal).

.json no tiene un controlador de tipo MIME por defecto. Es necesario instalar uno:

  • Gestor de carga de IIS
  • Navegar los nodos del árbol hasta su aplicación web o sitio web
  • doble clic en el MIME cuentan los tipos (panel inferior)
  • Haga clic en Agregar (RHS en "Añadir", o haga clic derecho y elija Agregar)
  • Deja .txt bajo el campo de extensión y application/json como el tipo MIME

¡Ya terminaste! Intente solicitar el archivo JSON en el navegador; si se representa correctamente (como texto), impresionante. De lo contrario, puede que tenga que decirle a IIS que lo represente como text/plain.

Cuestiones relacionadas