2013-04-08 87 views
1

我在我的Grails應用程序中使用json格式呈現數據的Web服務方法。如何從不同的應用程序中遠程調用Grails Web服務

def getCityListJson(){ 
    def cityList= City.list() as JSON 
    render cityList 
} 

這基本上是一個控制器動作。

現在我想從使用jQuery

<script type="text/javascript"> 
     $(function(){ 
     $("#geCity").click(function(){ 
      $.getJSON('http://localhost:8080/city/getCityListJson',    
      function(data) { 
       console.log(data) 
       }); 
     }); 
    }); 
    </script> 

,但沒有得到任何迴應..

我是新來的我的PHP應用程序

我已經在我的PHP頁面試圖調用此方法Web服務概念..什麼是調用Web服務的正確方法?

感謝您的幫助。

+0

這兩個應用程序都運行在同一個域('localhost:8080')還是不同? – 2013-04-08 10:35:48

+0

你的瀏覽器控制檯有什麼錯誤? – 2013-04-08 10:36:16

+0

@IgorArtamonov:否.. – monda 2013-04-08 11:38:23

回答

0

在您的成功回調中,您嘗試記錄未被聲明的json

您已將您的參數命名爲data。改變這一點,它應該工作:

<script type="text/javascript"> 
    $(function(){ 
     $("#geCity").click(function(){ 
      $.getJSON('http://localhost:8080/city/getCityListJson',    
       function(data) { 
        console.log(data) 
      }); 
     }); 
    }); 
</script> 

如果不到風度登錄任何東西,與螢火蟲或類似的WebService檢查您的溝通。因此,您可以檢查請求是否正確發送,以及服務器是否按預期發送(JSON)響應。

+0

沒有反應..我更新了我的問題。 – monda 2013-04-08 10:22:30

+0

您確定該操作被調用嗎?您是否在_getCityListJson_動作中檢查了螢火蟲或添加了一些調試日誌記錄? – aiolos 2013-04-08 10:25:02

+0

我已經嘗試在Grails中調用_getCityListJson_動作,它的工作正常..但是當我從外部調用該方法(來自Php應用程序)時,操作不會被調用。 – monda 2013-04-08 10:30:17

相關問題