将参数传递到Scala Play中的Ajax URL

时间:2017-02-13 10:04:59

标签: jquery ajax scala playframework

我有一个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无法传递到网址路由。我已经尝试将它作为一个函数实现并调用它但它不起作用。有什么想法吗?

1 个答案:

答案 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控制器中更改参数的名称,则必须在视图中更改它。