2012-03-16 9 views
6

Cuando agregué la aplicación a mi aplicación web ejecutando jquery mobile, todas las llamadas ajax que solicitan json-files desde mi servidor funcionan. Mi archivo manifiesto se ve así:¿Cómo permito las solicitudes json cuando uso la función de aplicación de HTML5?

CACHE MANIFEST 

CACHE: 

index.html 
scripts/jquery-1.7.1.min.js scripts/jquery.flot.min.js 
scripts/jquery.flot.threshold.min.js 
scripts/jquery.mobile-1.0.1.min.js 
styles/jquery.mobile-1.0.1.min.css 
styles/touchStyles.css 
styles/styles.css 

NETWORK: 

index.appcache 
dataFetchAndDraw.js 
initJson 

Donde initJson es una de las llamadas que no funcionará. Intenté ingresar la dirección completa (aaa: bbb: ccc: ddd: 6565/initJson) también sin éxito.

En mi archivo .htaccess sólo tengo esta línea:

AddType text/cache-manifest .manifest 

Respuesta

2

He tenido un problema similar con una aplicación que estaba trabajando, el problema que tenía era la bandera de caché en la llamada ajax no cumplía a verdad

He descubierto que cuando añadí

cache : false 

a mi petición GET ajax la petición acierta en el servidor. (http://api.jquery.com/jQuery.ajax/)

10

Acabo de toparme con este problema y tuve que agregar un comodín a la sección de RED del archivo de manifiesto para permitir que el navegador vaya a la red para cualquier recurso no almacenado en caché

NETWORK: 
* 
http://* 

Aparentemente necesita ambas entradas de comodín de arriba para admitir todos los navegadores.

También encontré appcachefacts.info un recurso útil para comprender este y otros detalles acerca de la aplicación. Recomiendo leer todo el contenido antes de continuar con la curva de aprendizaje de la aplicación:

La sección RED enumera todas las URL que se pueden cargar a través de Internet. Si su aplicación incluye alguna llamada API, asegúrese de enumerarla aquí. Tenga en cuenta que esta es una lista de prefijos de URL, por lo que si todas sus llamadas de red comienzan con http://example.com/api/, eso es todo lo que necesita incluir.

Si desea permitir el acceso a URLs arbitrarias (scripts, hojas de estilo, llamadas a API, cualquier cosa), incluya *, http: // * y https: // * en esta sección. (Chrome y Safari respetan la *; Firefox necesita el http: // * y https: // *.)

+1

Esto realmente debería ser el predeterminado. HTML5 AppCache no parece bien implementado o especificado en absoluto. El navegador debe mostrar la página en caché y luego descargar una nueva página en segundo plano si hay una conexión para actualizar el caché con cada recarga. Pero en su lugar fuerza un tipo de modo fuera de línea, incluso cuando el usuario tiene una conexión. –

0

lanzo para este problema hoy en día. Pero en mi caso, sólo el trabajo con dos pasos:

  1. $.ajax({ url: "/myurl", cache: false, ...})
  2. Config sesión AppCache RED con

espero que sea útil para usted.

Cuestiones relacionadas