我有一个Ajax路由,它接受一个可选的字符串;我从HTML选择标记中获取此字符串,但是当我将参数传递到url路由时,它不会注册为变量。
$("#submit-button").on('click', function () {
var getOption = $( "#option" ).find(":selected").text();
var idToGet = $("#hi").val();
$.ajax({
url: '@routes.ApplicationController.getStuff(Some(getOption))', //requires an option[string]
type: 'GET',
data: {get_param: idToGet},
dataType: 'json',
success: function (data) {
$.each(data, function (index, element) {
alert("hi")
});
}
});
});
getOption
无法传递到网址路由。我已经尝试将它作为一个函数实现并调用它但它不起作用。有什么想法吗?
答案 0 :(得分:1)
对于GET
,唯一的方法是使用absoluteURL和queryparam。
假设您的参数名称为option
:
$("#submit-button").on('click', function () {
var getOption = $( "#option" ).find(":selected").text();
var idToGet = $("#hi").val();
$.ajax({
url: '@{routes.ApplicationController.getStuff(None).absoluteURL()}?option='+getOption, //requires an option[string]
type: 'GET',
data: {get_param: idToGet},
dataType: 'json',
success: function (data) {
$.each(data, function (index, element) {
alert("hi")
});
}
});
});
缺点是,如果在Scala控制器中更改参数的名称,则必须在视图中更改它。