2012-06-15 83 views
4

我想創建一個插件。在我的插件中,我必須從我的函數調用控制器動作。下面是ajax調用的片段,它在單獨的js文件中。js的訪問插件控制器

$.ajax({ 
      type:'POST', 
      url:"/wf-taglibs/refTagLib/getDescriptionByCode", 
      data:{ 
       'code':code, 
       'beanClass':beanClassAttribute 
      }, 

      success:function (data) { 
       $('#' + updateFieldAttribute).text(data); 
      }, 
      error:function (xhr, ajaxOptions, thrownError){ 
       alert(xhr.status); 
       alert(thrownError); 
      } 
     }); 

我有問題的網址。 url:「/ wf-taglibs/refTagLib/getDescriptionByCode」,作爲迴應,我們得到'未找到請求的頁面'。請幫助。

+0

哪裏是你的控制器入口點?即:http://yoursite.com/wf-taglibs/refTagLib/getDescriptionByCode –

+0

我試過了,似乎不起作用。 – emilan

+0

@MartinBorthiry表示,您需要指定**服務的完整路徑**,包括「http:\\」 – Th0rndike

回答

2

我不會像這樣硬編碼URL,而是在我的gsp內部聲明一個js變量,指向正確的控制器/操作,然後讓我的js代碼使用該變量。

var getDescriptionEndpoint = "${createLink(controller:'x', action:'x')}"; 

然後在js代碼中使用該變量來調用ajax。 這樣它也會考慮反向網址映射。

雖然它不是一個好主意,但如果你想直接聲明變量到js文件 - 。換句話說 - 如果你想要把你的JS文件作爲GSP - 見GSP屁股插件

+0

這將返回字符串,並且不適用於單獨的。 js文件。只有在.gsp文件中時纔有效。 – emilan

+0

是的,你是對的..我會有一個gsp文件來保存這種類型的變量聲明,然後我會在