javascript - 无法通过ajax将字符串传递给 Controller

标签 javascript ajax playframework

我是使用 play 框架和 ajax 进行 Web 开发的新手,现在我想使用 ajax 将表单中的字符串传递给 Controller ​​,但我不知道该怎么做。你能帮助我吗?这是我的代码: html:

<form onsubmit="return newSearch();" id="formId">
    <input type="search" placeholder="Search for more" id="searchBar_chat">
</form>
<script type="text/javascript" >
function newSearch()
{
    var s = document.getElementById("chatDialgue");
    var searchValue = document.getElementById("searchBar_chat").value;
    s.innerHTML = s.innerHTML + '<li>'+ searchValue +'</li>';
    document.getElementById("searchBar_chat").value ="";
    $.ajax({
        url: "DataMatch/searchContentMatch",  
        type:"GET",
        cache: false,
        dataType:"text",
        data:"searchValue",
        success: function (responseData) {  
        s.innerHTML = s.innerHTML + '<li>'+responseData+'</li>';  
        }  
        });
    return false;
}
</script>

Controller :

public class DataMatch extends Controller{

  public String searchContentMatch (String search) {
    // Search match
    return "HI"+search;
  }

}

最佳答案

首先,在$.ajax()的数据参数中,您必须构建一个查询字符串,因此正确的方法是将键(“search”)与其值(searchValue)连接起来)。

然后,您既不需要脚本中的 return false 语句,也不需要 onsubmit 表单属性上的 return 关键字。

最后,由于您使用的是 jQuery,因此请利用其选择功能并将 document.getElementById 替换为 $

<form onsubmit="newSearch();" id="formId">
    <input type="search" placeholder="Search for more" id="searchBar_chat">
</form>
<script type="text/javascript" >
function newSearch(){
    var searchValue = $("#searchBar_chat").val();
    $("#chatDialgue").append('<li>'+ searchValue +'</li>');
    $("#searchBar_chat").val("");
    $.ajax({
        url: "DataMatch/searchContentMatch",  
        type:"GET",
        cache: false,
        dataType: "text",
        data: "search=" + searchValue,
        success: function (responseData) {  
            $("#chatDialgue").append('<li>' + responseData + '</li>');
        }  
    });
}
</script>

关于javascript - 无法通过ajax将字符串传递给 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42697961/

相关文章:

javascript - 过滤嵌套数组

javascript - 访问数组值 Javascript

java - 如何在 play 框架中使用 java 进行分页?

mysql - 异常Mysql存储过程调用

javascript - 为什么 Flexslider 中的选择器之一工作而第二个不工作?

javascript - 使用 JavaScript 下载多个文件(一次下载)

Javascript 事件监听器和数组

javascript - 如何在对象值的异步 for 循环完成执行后调用函数

php - jQuery - 获取 News.html 404(未找到)

playframework - Securesocial View 定制