ajax和spring mvc出现406(不可接受)错误

时间:2013-12-30 17:52:12

标签: javascript ajax spring spring-mvc

我有这个问题GET http://localhost:8080/yous/ajaxtest 406 (Inacceptable)
我的脚本使用ajax来处理登录表单:

        function ajaxtest() {
        $.ajax({
            url : 'ajaxtest',
            success : function(responce) {
                if(responce)
                    $('#formlogin').submit();
                else
                $('#errorlogin').html("Le nom d'utilisateur ou le mot de passe saisi est incorrect.");
            }
        });
       }

我的控制器:

    @RequestMapping(value = "/ajaxtest")
    public @ResponseBody
    boolean  ajaxtest(@ModelAttribute(value="auth") Auth auth) {

    List<Auth> listlogin = authDao.findByProperty("login", auth.getLogin(), "pwd", auth.getPwd());
    if(listlogin.size() == 1)
        return true;    
    return false;
    }

另一个问题我是ajax的新手,我听到很多JSON发送请求是他处理ajax的最佳方法吗?

3 个答案:

答案 0 :(得分:0)

当您的处理程序方法使用@ResponseBody进行注释时,Spring通常会生成一个JSON响应正文,将响应content-type设置为application/json。如果您的请求中没有该媒体类型的Accept标头,Spring将认为响应不可接受并返回406错误代码。

您需要在ajax请求中指定Accept标头

headers: { 
    Accept : "application/json"
}

使用适当的媒体类型。

答案 1 :(得分:0)

我只是添加了这个依赖项,它起作用了:)

    <!-- Jackson JSON Mapper -->
    <dependency>
        <groupId>org.codehaus.jackson</groupId>
        <artifactId>jackson-mapper-asl</artifactId>
        <version>1.9.13</version>
    </dependency>

答案 2 :(得分:0)

当我使用GET方法发送地址电子邮件时,我遇到了同样的问题。我使用POST方法解决了我的问题