我用 Grails 构建了一个社交网络,但遇到了困难 给用户内部他们的 editprofile 页面有机会将 youtube-Url 粘贴到文本字段中,然后通过单击按钮,JS 将 id 从粘贴的 URL 中正则表达式,将触发一个 ajax 帖子,用 youtube 视频的预览图像更新 div
html 看起来像:
<g:textField name="videoinput" class="videoinput reLef" value="" />
<span class="daten_videouploadbtn reLef" ></span>
<g:render template="/forms/storedVideos" />
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){}
});
});
Controller 看起来像:
def addVideo() {
def videoitems = !!%%-- HOW TO PARSE YOUTUBE-ID HERE -%%!!
render(template:"/forms/storedVideos", model: [newVideo:videoitems])
}
和存储的视频看起来:
<div id="storedvideos"><span><img src="http://img.youtube.com/vi/${newVideo}/default.jpg" width="225px" height="130px"/></span></div>
我只是不明白如何捕获 Ajax Post 的数据并使用带有 id 的预览图像更新 div,
有人可以给个提示吗?快要死了
最佳答案
您应该像这样发布数据:
jQuery.ajax({
type: 'POST',
data: { value: RegExp.$1 },
...
之后,您可以使用 params.value
访问 grails Controller 中的已发布数据。
关于javascript - 将 AJAX POST 的参数传递给 Grails Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13905416/