ajax访问后台代码,成功但是ajax走error:function

后台代码

    /**
     *  账号是否存在
     * @param account
     * @return
     */
    @RequestMapping(value = "/validateAccountNonExistent.json", method = RequestMethod.GET)
    @ResponseBody
    public JsonData validateActNonExistent(@RequestParam String account){
        System.out.println(account+"============account");
        if(sysUserService.checkTelephoneExist(account, null)){
            System.out.println("true");
            return JsonData.success();
        }else if(sysUserService.checkEmailExist(account, null)){
            System.out.println("true");
            return JsonData.success();
        }else{
            System.out.println("false");
            return JsonData.fail("账号不存在");
        }
    }

后台拦截器拦截到的日志信息

================================================================================================
2019-03-14 11:26:11.162  INFO 15436 --- [nio-8081-exec-3] com.hdcs.interceptor.HttpInterceptor     : request start. servletPath:/sys/user/validateAccountNonExistent.json, methodType:GET
2019-03-14 11:26:11.162  INFO 15436 --- [nio-8081-exec-3] com.hdcs.interceptor.HttpInterceptor     : request start. url:/assets/sys/user/validateAccountNonExistent.json, params:{"account":["admin@qq.com"],"_":["1552533963678"]}
servletPath==========/sys/user/validateAccountNonExistent.json
2019-03-14 11:26:11.162  INFO 15436 --- [nio-8081-exec-3] com.hdcs.interceptor.HttpInterceptor     : request completed. url:/assets/sys/user/validateAccountNonExistent.json, cost:0

js

callback: function (value, validator, $field) {
                            var bol = true;
                            $.ajax({
                                type: "get",
                                url: "/assets/sys/user/validateAccountNonExistent.json",
                                cache : false,
                                async : false,
                                data: {
                                    account:value
                                },
                                success: function(data) {
                                    console.log(data.ret);
                                    if(!data.ret){
                                        bol = false;
                                    }
                                },
                                error: function () {
                                    console.log("caocaocaocao");
                                    bol = false;
                                }
                            });
                            return bol;
                        }

说明:前台,浏览器F12 network中访问正确200,后台拦截器也拦截到了数据,但是后台没有进方法,连输出语句都没有输出,ajax会走error:function(){}。
但是只要把前后台代码中的访问路径中的validateAccountNonExistent改成validateTelephoneNonExistent就没有问题 =-= 。求解!!!!!
补充

{readyState: 4, getResponseHeader: ƒ, getAllResponseHeaders: ƒ, setRequestHeader: ƒ, overrideMimeType: ƒ, …}abort: ƒ (e)always: ƒ ()catch: ƒ (e)done: ƒ ()fail: ƒ ()getAllResponseHeaders: ƒ ()getResponseHeader: ƒ (e)overrideMimeType: ƒ (e)pipe: ƒ ()progress: ƒ ()promise: ƒ (e)readyState: 4responseText: ""setRequestHeader: ƒ (e,t)state: ƒ ()status: 200statusCode: ƒ (e)statusText: "parsererror"then: ƒ (t,r,i)__proto__: Object
VM513:170 parsererror
VM513:171 SyntaxError: Unexpected end of JSON input
    at parse (<anonymous>)
    at Ut (jquery.min.js:2)
    at k (jquery.min.js:2)
    at XMLHttpRequest.<anonymous> (jquery.min.js:2)
    at Object.send (jquery.min.js:2)
    at Function.ajax (jquery.min.js:2)
    at Object.callback (<anonymous>:153:31)
    at Object.call (bootstrapValidator.min.js:10)
    at Object.validate (bootstrapValidator.min.js:10)
    at b.validateField (bootstrapValidator.min.js:10)
qq_39181568
MY_MAIN {readyState: 4, getResponseHeader: ƒ, getAllResponseHeaders: ƒ, setRequestHeader: ƒ, overrideMimeType: ƒ, …}abort: ƒ (e)always: ƒ ()catch: ƒ (e)done: ƒ ()fail: ƒ ()getAllResponseHeaders: ƒ ()getResponseHeader: ƒ (e)overrideMimeType: ƒ (e)pipe: ƒ ()progress: ƒ ()promise: ƒ (e)readyState: 4responseText: ""setRequestHeader: ƒ (e,t)state: ƒ ()status: 200statusCode: ƒ (e)statusText: "parsererror"then: ƒ (t,r,i)__proto__: Object VM513:170 parsererror VM513:171 SyntaxError: Unexpected end of JSON input at parse (<anonymous>) at Ut (jquery.min.js:2) at k (jquery.min.js:2) at XMLHttpRequest.<anonymous> (jquery.min.js:2) at Object.send (jquery.min.js:2) at Function.ajax (jquery.min.js:2) at Object.callback (<anonymous>:153:31) at Object.call (bootstrapValidator.min.js:10) at Object.validate (bootstrapValidator.min.js:10) at b.validateField (bootstrapValidator.min.js:10)
11 个月之前 回复
qq_39181568
MY_MAIN 再补充一下,不管我前后台的访问路径是sadassddfsafd这样瞎写的,也不好使= -=
11 个月之前 回复
qq_39181568
MY_MAIN 没有相同的路径
11 个月之前 回复

3个回答

忘设权限了,= -=

ajax 请求之后你后台返回的数据格式是json格式,你在你的ajax里设置下 dataType:”json“
例如:
$.ajax({
type: "GET",
url: url,
data: {},
dataType: "json",
success: function(data){
//TODO success
},
error:function(){
//TODO error
}
});

qq_39181568
MY_MAIN 回复不喜欢吃猫的鱼: 但是修改请求路径为validateTelephoneNonExistent.json就好了,其他的就不行像adfafdas这样瞎写接不行= -=
11 个月之前 回复
qq_39181568
MY_MAIN 回复不喜欢吃猫的鱼: dataType : "json"加上了,但是没好
11 个月之前 回复
qq_37461349
不喜欢吃猫的鱼 回复MY_MAIN: 你的controller接口返回的数据格式就是json, 修改里面的url只是请求路径的修改
11 个月之前 回复
qq_39181568
MY_MAIN = -= 不起作用,还是走的error,把@RequestMapping(url)中的url改成validateTelephoneNonExistent.json就好用 o(╥﹏╥)o
11 个月之前 回复

运行一遍,控制台能打印============account? 打个断点试试吧.应该是后台代码问题.
什么?打印不出?那应该是你的URL起的太骚了......写成绝对路径肯定OK

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问