2012-01-16 70 views
0

我有一個web視圖,它在HTML/Javascript中使用Put/Delete方法進行Http調用。這些調用似乎被忽略(我在Chrome上測試它們,它們工作正常)。WebView忽略調用PUT/DELETE Http方法的Javascript

有什麼想法?

這裏的JS代碼的網頁視圖內:

var req = new Backbone.Model(auth); 

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

注意,這是從一個jQuery Ajax調用。

+0

我剛剛在ICS模擬器上測試過,它在那裏工作。爲什麼它不適用於早期版本? – oriharel 2012-01-17 09:09:14

回答

0

你試過

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

是的。沒有幫助... – oriharel 2012-01-16 08:31:05

1

的原因,WebView忽略呼叫是因爲緩存。看起來PUT/DELETE調用被緩存。

這裏就是我所做的,以解決這個問題:

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

正如你可以看到我爲了克服緩存機制增加了一個新Date()對象的創建。

感謝Guy給予幫助。你一定要看看他的博客http://blog.guya.net/

+0

是否有任何屬性來關閉緩存? – 2012-01-17 13:39:41

+0

是的,WebView有幾種緩存模式可供選擇。查看WebSettings類:http://developer.android.com/reference/android/webkit/WebSettings.html – oriharel 2012-01-17 13:56:09