Grails Ajax URL createLink不起作用

时间:2014-01-07 07:33:01

标签: jquery ajax url grails

我的代码段是:

$('#PostCode').autocomplete({
        source: function (request, response) {
            $.ajax({
                url: "${createLink(controller:'postcode',action:'getValidPostcodeValues')}",
                dataType: "json",
                success: function( data ) {
                    response( $.map( data, function( item ) {
                        return {
                            id: item.id,
                            value: item.name
                        }
                    }));
                }
            });
        },
        minLength: 1,
        select: function (event, ui) {
            $('#PostCodeHidden').val(ui.item.id);
        }
    });

然而它不起作用。我使用chrome web工具跟踪ajax调用url就像是

GET http://localhost:8080/edp-grails/xxx/xxx/$%7BcreateLink(controller:'postcode',action:'getValidPostcodeValues')%7D 404 (Not Found)

为什么grails无法将createlink解释为实际的url?

1 个答案:

答案 0 :(得分:3)

在这种情况下我通常做的是在GSP文件中,执行以下操作:

<script> var getValidPostcodeValuesURL = "${createLink(controller:'postcode',action:'getValidPostcodeValues')}"</script>

然后在JS文件的AJAX调用中执行:

$.ajax({
            url: getValidPostcodeValuesURL,
            dataType: "json",
            success: function( data ) {
                response( $.map( data, function( item ) {
                    return {
                        id: item.id,
                        value: item.name
                    }
                }));
            }
        });

可能有其他更好的方法,但它对我有用