Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Ajax for id check in jsp只返回相同的结果_Javascript_Ajax_Spring_Jsp_Spring Mvc - Fatal编程技术网

Javascript Ajax for id check in jsp只返回相同的结果

Javascript Ajax for id check in jsp只返回相同的结果,javascript,ajax,spring,jsp,spring-mvc,Javascript,Ajax,Spring,Jsp,Spring Mvc,我一直在努力在jsp中使用ajax检查id。所以,当用户尝试创建一个新帐户时,他们将键入想要创建的id,ajax将检查数据库中是否有相同的id。如果有,则返回“n”,在jsp中变为“不可用”。如果没有相同的id,则返回“y”,在jsp中变为“可用”。问题是,它似乎只返回“n” 这里是javascript $('#email').keyup(function(){ var str = $(this).val(); var server = "idcheck";

我一直在努力在jsp中使用ajax检查id。所以,当用户尝试创建一个新帐户时,他们将键入想要创建的id,ajax将检查数据库中是否有相同的id。如果有,则返回“n”,在jsp中变为“不可用”。如果没有相同的id,则返回“y”,在jsp中变为“可用”。问题是,它似乎只返回“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" />    

首先,您需要确保在spring控制器方法中获得输入字段值。所以在这里您发送一个参数{email:str},但在控制器中您正在寻找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请求中绑定的数据电子邮件可以映射到方法参数email

@Select("SELECT count(*) AS cnt FROM `member` WHERE mem_id=#{mem_id}")
public int memberIDCheck(String 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;