将AJAX POST的参数传递给Grails控制器

我正在使用Grails建立一个社交网络,并且不得不让用户在其编辑页面内部粘贴youtube-Url到文本字段,然后点击一个按钮,JS粘贴了粘贴的URL中的id,ajaxpost是使用youtubevideo的预览图片更新div

html看起来像:

   

JS看起来像:

  $('.daten_videouploadbtn').click(function() { var string = document.editProfileForm.videoinput.value; var neu = string.replace(/http[s]?:\/\/(?:[^\.]+\.)*(?:youtube\.com\/(?:v\/|watch\?(?:.*?\&)?v=|embed\/)|youtu.be\/)([\w\-\_]+)/i, '$1'); var id = RegExp.$1; jQuery.ajax({ type:'POST', data:RegExp.$1, url:'${createLink(action: 'addVideo')}', success:function(data,textStatus){jQuery('#storedvideos').html(data);}, error:function(XMLHttpRequest,textStatus,errorThrown){} }); }); 

控制器看起来像:

 def addVideo() { def videoitems = !!%%-- HOW TO PARSE YOUTUBE-ID HERE -%%!! render(template:"/forms/storedVideos", model: [newVideo:videoitems]) } 

和存储的video看起来:

  

我只是不知道如何捕获Ajax Post的数据并使用id为里面的预览图像更新div,

有人能暗示一下吗? 它杀了我

你应该发布这样的数据:

 jQuery.ajax({ type: 'POST', data: { value: RegExp.$1 }, ... 

之后,您可以使用params.value访问grails控制器内的发布数据。

我在Grails 2.0.4上工作了这个:

的JavaScript / AJAX

 var data = {requestId: 12456, node: "node1", host: "mynode.com"}; $.ajax({ url: '/myurl', data: JSON.stringify(data), type: 'post', contentType: 'application/json; charset=utf-8', dataType: 'json', success: function() ... }, error: function() ... } }); 

在Grails ….

 def service(){ def jsonObj = request.JSON } 

我喜欢这种方法,因为request.JSON解析数据并返回一个可以使用的对象。