我正在尝试通过注册表格进行实时验证,该表格告诉用户他们尝试使用的用户名是否已被使用。我正在使用jQuery来检测输入中的更改,并想将它们作为AJAX输入的用户名发送给我设置的Spring控制器。最终,它将把它插入查询中,并返回该用户名是否已注册。我在使用AJAX时遇到麻烦。关于如何准确发送请求的任何想法?
我的AJAX:
$(document).ready(() => {
function checkPassword() {
let usernameGiven = $("#username").val();
$.post( "/check",
{username: usernameGiven} ,
function(data) {
console.log(data)
})
}
$('#username').on('input', () => {
checkPassword()
});
});
我的控制器:
@PostMapping("/check")
public String checkUsername(@RequestParam(name = "username") String username){
}
答案 0 :(得分:0)
我已经很长时间没有使用jQuery了,但我认为您无法使用该语法在您的帖子中传递数据。试试:
$.ajax({
type: "POST",
url: url,
data: data,
success: success,
dataType: dataType
});
dataType
是您希望从服务器返回的数据类型(xml,json,脚本,文本,html)。
在测试时,请确保实际上也从控制器返回了一些数据,即使目前只是模拟数据。
答案 1 :(得分:0)
Maybe can work if you use:
<input id="username" onBlur="checkIfUserExist()">
Make a javascript function:
function checkIfUserExist() {
$.ajax({
url: "/check",
data:'username='+$("#username").val(),
type: "POST",
success:function(data){
console.log(data); //content user availability status
},
error:function (){}
});
}
}
答案 2 :(得分:0)
认为我找到了想要的东西。这对我有用。让我知道您是否认为有一种更有效的方法。
@RestController
public class TestController {
@GetMapping("/getString")
public String getString(@RequestParam(name = "username") String username) {
return JSONObject.quote(username);
}
}