gpt4 book ai didi

javascript - Ajax在jsp中进行id检查仅返回相同的结果

转载 作者:行者123 更新时间:2023-12-03 05:12:38 24 4
gpt4 key购买 nike

我一直在jsp中使用ajax来检查id。因此,当用户尝试创建一个新帐户时,他们将输入他们想要创建的 id,ajax 将检查数据库中是否存在相同的 id。如果有,则返回“n”,并在jsp中将其更改为“不可用”。如果没有相同的 id,则返回“y”,并在 jsp 中更改为“available”。问题是它似乎只返回“n”。

这是 JavaScript。

 $('#email').keyup(function(){
var str = $(this).val();
var server = "idcheck";
$.post(server, {"email":str}, function(data){
if(data.ret =='y'){
$('#valid_check').html("available");
}else if(data.ret =='n'){
$('#valid_check').html("unavailable");
}

});
});

这是 join.jsp。

<label id="valid_check">check if you can use id</label>
<input id="email" name="email" type="email" class="form-style-join" placeholder="ex> mymail477@gmail.com" />

这是 Controller 。

@RequestMapping(value = "/idcheck", method = { RequestMethod.GET, RequestMethod.POST })
public @ResponseBody HashMap<String,String> idCheck(HttpServletRequest request,
HttpServletResponse response){
response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
response.setHeader("Access-Control-Max-Age", "3600");
response.setHeader("Access-Control-Allow-Headers", "x-requested-with");
response.setHeader("Access-Control-Allow-Origin", "*");
response.setContentType("application/json");
response.setCharacterEncoding("UTF-8");

String mem_id = request.getParameter("mem_id");
int ret= memberMapper.memberIDCheck(mem_id);

HashMap<String,String> map = new HashMap<String,String>();


if(ret == 1){
map.put("ret", "y");

}else if( ret != 1){
map.put("ret", "n");
}

System.out.println(map);
return map;
}

这是映射器。

@Select("SELECT count(*) AS cnt FROM `member` WHERE mem_id=#{mem_id}")
public int memberIDCheck(String mem_id);

最佳答案

首先,您需要确保在 Spring Controller 方法中获取输入字段值。因此,您在这里发送一个参数 {"email":str} 但在 Controller 中您正在寻找“mem_id”。

试试这个代码:

@RequestMapping(value = "/idcheck", method =  RequestMethod.POST })
public @ResponseBody HashMap<String,String> idCheck(HttpServletRequest request, HttpServletResponse response, @RequestBody String email){
response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
response.setHeader("Access-Control-Max-Age", "3600");
response.setHeader("Access-Control-Allow-Headers", "x-requested-with");
response.setHeader("Access-Control-Allow-Origin", "*");
response.setContentType("application/json");
response.setCharacterEncoding("UTF-8");

String mem_id = email;
int ret= memberMapper.memberIDCheck(mem_id);

HashMap<String,String> map = new HashMap<String,String>();


if(ret == 1){
map.put("ret", "y");

}else if( ret != 1){
map.put("ret", "n");
}

System.out.println(map);
return map;

}

这里我添加了一个@RequestBody。这样ajax请求中绑定(bind)的数据“email”就可以映射到方法参数email上。

关于javascript - Ajax在jsp中进行id检查仅返回相同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41740710/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com