2013-02-20 145 views
0

我有寧靜的網絡服務。我想通過android中的ajax從本地獲得JSON(使用webview)。 這是HTMT文件中的代碼在AJAX應用程序的Android如何在android中通過ajax調用本地restful web服務?

功能的get(){$ 阿賈克斯({

  url: "[http://localhost:31132/api/Customer][1]", 
      type: "GET", 
      dataType: "json",     
      success: function (data) {      
       $('#d').append("sucess"); 
      }, 
      error: function (request, status, error) {     
       $('#d').append(error); 
      } 
     }); 
    } 

該瀏覽器的代碼運行得非常好。但是,不要在Android上運行。仿真機器人使用API​​級別10

感謝:d

回答

0

Quote

默認情況下,WebView不提供類似瀏覽器的小部件,不啓用JavaScript並忽略網頁錯誤。

你這樣做:

webview.getSettings().setJavaScriptEnabled(true); 

更新如果Web服務不符合標準的Android瀏覽器中運行原來的樣子,那不奇怪,它不具有的WebView運行。儘管問題依然存在,您是否將瀏覽器配置爲將自己標識爲Android或「桌面」。我還沒有詳細研究過您發佈的視頻,但我得到的印象是您自己編寫了Web服務,使用了一些(Microsoft?)框架。關鍵問題是:這個框架如何處理Android請求,例如關於它發送的用戶代理(瀏覽器標識)。一般來說,Android上的JavaScript支持相當不錯,寫得很好的AJAX庫可以處理各種平臺。因此,我會

  1. 嘗試將UserAgend標識設置爲虛假的桌面瀏覽器,然後再試一次。如果這樣做不起作用,那麼確定Web服務在給定配置中實際傳送給客戶端的AJAX文件是很有價值的。最後,如果這不起作用,那麼查看WebView發佈的錯誤消息將是明智的。
+0

是的,我做的。這段代碼在我的應用程序中有 – lqg 2013-02-20 07:32:03

+0

@lqg 1)_local_ restful是什麼意思,服務在哪裏運行? 2)服務是否使用Android瀏覽器運行? 3)你能否影響Web服務的實現? – 2013-02-20 08:36:03

+0

Restful是由C#編寫的。當我按下Ctrl + F5平穩運行我的電腦時。我在android get json中使用ajax。您在http://www.youtube.com/watch?v=bx374YJRmO0&feature=youtu.be上觀看視頻 – lqg 2013-02-20 10:06:46

0

在web服務URL中,嘗試使用10.0.2.2而不是localhost。 localhost或127.0.0.1指向emulator/android設備,而10.0.2.2是主機回送接口(即開發計算機上的127.0.0.1)的特殊別名。

嘗試http://10.0.2.2:31132,而不是http://localhost:31132

+0

是的。我知道。我嘗試過這個。我不知道android支持ajax jquery嗎?你知道嗎? – lqg 2013-02-20 10:17:49