代码改变世界

前端fetch,后端返回500的错误解决

2019-09-19 11:09  雄风狂飙  阅读(2787)  评论(0)    收藏  举报

前端代码如下

 fetch('/chaptchaVerify', {
                method: 'post',
                headers: {'Content-Type': 'application/x-www-form-urlencoded'},
                body: "kaptchaName=" + kaptcha
            }).then((response) => {

                if (response.status >= 200 && response.status < 300) {
                    return Promise.resolve(response);
                } else {
                    return Promise.reject(new Error(response.statusText));
                }
            }).then((response) => {
                response.text().then( (data)=>{
                    console.log(data);
                } );
            }).catch((err) => {
                    console.log(err);
                });

  但是,从后端返回的状态一直是500,经查,后台的返回类型是map所致,修改为string就可以了

后端的返回值修改为String,

@Controller
public class LoginController {

    @RequestMapping(value="/chaptchaVerify",method= RequestMethod.POST)
    @ResponseBody
    public String verify(HttpServletRequest request){

        String codeExpected = (String) request.getSession().getAttribute(
                com.google.code.kaptcha.Constants.KAPTCHA_SESSION_KEY);
        String actualCode = request.getParameter("kaptchaName");
        String strResult ;
       if( codeExpected.equals(actualCode) ) {
           strResult = "success";
        }
        else{
           strResult = "error";
        }
        return strResult;

    }
}