【问题标题】:Passing Parameters of AJAX POST to Grails Controller将 AJAX POST 的参数传递给 Grails 控制器
【发布时间】:2012-12-04 00:47:09
【问题描述】:

我正在使用 Grails 构建社交网络,但遇到了问题 在为用户提供他们的编辑配置文件时 页面有机会将 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){}
        });
});

控制器看起来像:

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,

谁能给个提示?它杀了我

【问题讨论】:

    标签: javascript jquery ajax grails params


    【解决方案1】:

    你应该像这样发布数据:

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

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

    【讨论】:

      【解决方案2】:

      我在 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 会解析数据并返回一个可以使用的对象。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-09-02
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多