2012-01-16 2 views
0

J'ai une vue web qui dans son HTML/Javascript fait un appel Http avec les méthodes Put/Delete. ces appels semblent être ignorés (je les teste sur chrome et ils fonctionnent bien).WebView ignore Javascript qui appelle PUT/DELETE Méthode Http

Une idée?

Voici le code JS qu'à l'intérieur du WebView:

var req = new Backbone.Model(auth); 

$.ajax({ 
      type: PUT, 
      url: 'some_url', 
      data: JSON.stringify(req) 
     }); 

Notez que ceci est un appel Ajax à partir d'un jQuery.

+0

Je viens de tester sur l'émulateur ICS et cela fonctionne. Pourquoi ne fonctionne-t-il pas sur les versions antérieures? – oriharel

Répondre

0

Avez-vous essayé

webView.getSettings().setJavaScriptEnabled(true); 
webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true); 
+0

Oui. n'aide pas ... – oriharel

1

La raison pour laquelle l'WebView ignoré l'appel est à cause de la mise en cache. Il semble que les appels PUT/DELETE sont mis en cache.

Voici ce que je l'ai fait pour résoudre ce:

$.ajax({ 
    type: methode, 
    url: 'some_url?d' + new Date().getTime(), 
    data: JSON.stringify(req), 
}); 

Comme vous pouvez le voir, j'ajouté une nouvelle création d'objet Date() afin de surmonter ce mécanisme de mise en cache.

Merci à Guy pour son aide. Vous devriez certainement vérifier son blog au http://blog.guya.net/

+0

est-il une propriété pour désactiver la mise en cache? –

+0

Oui, WebView propose plusieurs modes de mise en cache. consultez la classe WebSettings à: http://developer.android.com/reference/android/webkit/WebSettings.html – oriharel

Questions connexes