2013-11-26 48 views
3

我是ajax的新手。我正在嘗試從我的gsp頁面向控制器操作發送請求。但我失敗了。它不調用控制器操作,頁面正在重新加載。任何人都可以看看這個和幫助。這是我的看法波紋管頁面>>>從gsp頁面在grails中調用ajax調用

<%@ page contentType="text/html;charset=UTF-8" %> 
<html> 
<head> 
    <title>Ajax First Example</title> 
    <g:javascript plugin="jquery" library="jquery" src="jquery/jquery-1.7.2.js"/> 
    <script> 
     function callAjax(){ 
      $.ajax({ 
       url: "returnMe", 
       type:"post", 
       dataType: 'json', 
//   data:{ids:JSON.stringify(idList), option:option, id:id} 
       success: function() { 
        alert(1) 
       } 
      }); 
     } 
    </script> 
</head> 
<body> 
<form name='myForm'> 
    <input type="submit" value="Call Ajax Function" onclick="callAjax()"> 
</form> 
</body> 
</html> 

這裏是我的控制器操作>>>

def returnMe = { 
    String msg = 'sdfsdf' 
    render msg as JSON 
} 

回答

6

你可以試試這個:

onclick="callAjax() return false;"> 

或者這一個:

function callAjax(e){ //<-------pass the event 
     e.preventDefault(); // <-----add this to prevent the default behavior 
     $.ajax({ 
      ..... 
     }); 
} 

您的完整阿賈克斯呼叫請求:

function callAjax(){ 
     $.ajax({ 
      url: "returnMe", 
      type:"post", 
      dataType: 'json', 
//   data:{ids:JSON.stringify(idList), option:option, id:id} 
      success: function(data) { 
       console.log(data); //<-----this logs the data in browser's console 
      }, 
      error: function(xhr){ 
       alert(xhr.responseText); //<----when no data alert the err msg 
      } 
     }); 
    } 
+0

感謝您的幫助。第一個爲我工作。但它並沒有警惕成功。只有管​​制員的行動正在被召喚。我現在該怎麼辦? –

+0

你可以嘗試向你的ajax添加錯誤函數,並且看看你的控制器是否正確生成'「json」'。 – Jai

+0

是的,我的JSON沒有正確構建。現在我已將其更改爲html。現在沒事了。但是,請您給我一個完整的ajax調用結構的鏈接。謝謝。 –