У меня есть следующий код в моем GSPКак я могу заставить grails remoteFunction работать?
<select onChange="${remoteFunction(action:'superior', controller:'employee', params: '\'name=\' + this.value')}">
<option>first</option>
<option>second</option>
</select>
Конкретно, этот код в моем файле _form.gsp. Действие в EmployeeController выглядит следующим образом:
def superior() {
println 'in here'
println 'these are the params: ' + params
}
Это, вероятно, кажется бессмысленным, но моя цель здесь просто чтобы быть в состоянии назвать мое удаленное действие и передать выбранное значение. Но я ничего не вижу в консоли. Если я напечатаю URL прямо следующим образом:
app-name/employee/superior
Я вижу свои заявления на печать на выходе. Так что мне здесь не хватает? Я в основном следил за тем, как установить это из документации grails (http://grails.org/doc/2.0.x/ref/Tags/remoteFunction.html), и у меня есть плагин JQuery. Если я использую просто функцию javascript в событии onChange (например, предупреждение), он отлично работает. Поэтому я уверен, что в моем браузере отключен javascript, я тестировал это с несколькими браузерами. Я почти уверен, что это что-то очень просто. Заранее спасибо.
Я проверил javascript с firebug, я не видел ошибки. Это сгенерированный javascript для onchange 'jQuery.ajax ({type:" POST ", data:" name = "+ this.value, url:"/myapp/employee/superior ", success: function (data, textStatus) {}, error: function (XMLHttpRequest, textStatus, errorThrown) {}}); 'Чтобы проверить это, я создал совершенно новое приложение grails, создал класс домена сотрудника только с первым и последним именем, а затем создал представления и контроллеры. Затем я вставил блок выбора кода в свой _form.gsp и действие в мой контроллер и протестировал. Я пропустил шаг? – Mark
Произошел ли HTTP-запрос? Можете ли вы проверить использование firebug? Если он есть, вы увидите его на вкладке консоли. – Chris
Спасибо за этот совет. Firebug говорил, что «JQuery не определен». Поэтому я огляделся в Интернете для других с аналогичной ошибкой. Мне пришлось добавить следующее в главный раздел моего файла main.gsp. ' ', после чего я увидел свой вывод на консоли. Так что спасибо, что помогли мне отладить с другой точки зрения, я только отлаживал свой источник. –
Mark