Spring项目开发中遇到的HTTP 406错误的原因

HTTP 406 错误指无法接收 (Not acceptable)错误。

  • 出现406一般有两种原因:

    1. Jackson包不存在(springMVC默认依赖Jackson包 )。

    2. 使用了@ResponseBody,返回数据后缀是.json,但是ajax请求的url后缀又是.html,最后浏览器收到数据不知该以哪种类型来解析数据,.html会被浏览器当作是静态页面,ajax请求返回了json数据,一静一动,浏览器不知如何处理,所以就会报406状态码。

  • 406的解决办法:

    1. 查看Jackson包是否存在(80%是这种情况)

    2. 检查java代码中是否使用了@ResponseBody注解,Springmvc框架中的@responseBody注解返回json数据

    3. 检查web.xml下的相应后缀是否为.html

    4. 问题出在请求的后缀.html,会欺骗浏览器当做一个静态网页来解析,是一个简单的SEO优化。一般来说是没问题的。但是这里我们使用了@ResponseBody,返回数据后缀是.json,但是ajax请求的url后缀又是.html,最后浏览器收到数据不知该以哪种类型数据来进行解析,所以就会报406状态码。

解决方法将web.xml中的映射器的url-pattern的后缀改为其他的.action,.do或者加个.json,然后修改ajax请求时的url后缀为.json都可以。

至此,出现406的所有原因都已排除,406的问题就能得到解决。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值