1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > html 415错误 HTTP 415 错误 – 不支持的媒体类型(Unsupported media type)

html 415错误 HTTP 415 错误 – 不支持的媒体类型(Unsupported media type)

时间:2022-10-29 02:40:22

相关推荐

html 415错误 HTTP 415 错误 – 不支持的媒体类型(Unsupported media type)

前段时间在使用@RequestBody注解的时候遇到了一个之前没遇到过的错误,HTTP 415Unsupported media type?这个是个什么鬼,@ResponseBody能够正常工做而一使用@RequestBody来进行交互就会报这个错误。一直请求不到Controller,我开始总觉得是路径或者json格式不对的问题,上网查资料大多也说的是这个问题。但是我已经写了javascript

data : JSON.stringify(user),html

dataType : 'json',

contentType : 'application/json;charset=UTF-8',java

按照网上的办法也一直无论用,百思不得其解。因而继续在网上找资料,web

网上分析缘由不少,但找了好久都没解决,基本是如下几类:ajax

springmvc添加配置、注解;

pom.xml添加jackson包引用;

Ajax请求时没有设置Content-Type为application/json

发送的请求内容不要转成JSON对象,直接发送JSON字符串便可 各类办法都尝试了一遍,仍是没有能解决问题;

jQuery(function($){

var urlStr = "/user/GetUser";

var user = {

"id" : 6,

"userName" : "小红",

"password" : "123",

"age" : 12

};

$.ajax({

url : urlStr,

type : "POST",

data : JSON.stringify(user), //转JSON字符串

dataType : 'json',

contentType : 'application/json;charset=UTF-8', //contentType很重要

success : function(result) {

console.log(result);

//alert(result);

//data = eval("(" + result + ")");

//alert(data);

$("#a").html(result.userName);

}

});

});

造了一个简单是数据来测试,仍是不行。。

package .hnust.controller;

import javax.servlet.http.HttpServletRequest;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Controller;

import org.springframework.ui.Model;

import org.springframework.web.bind.annotation.RequestBody;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RequestMethod;

import org.springframework.web.bind.annotation.ResponseBody;

import .hnust.domain.User;

import .hnust.service.IUserService;

@Controller

@RequestMapping("/user")

public class UserController {

@Autowired

private IUserService userService;

@RequestMapping("/showUser")

public String toIndex(HttpServletRequest request, Model model) {

// int userId = Integer.parseInt(request.getParameter("id"));

// User user = this.userService.getUserById(userId);

// model.addAttribute("user", user);

return "showUser";

}

@RequestMapping(value = "/GetUser", method = RequestMethod.POST)

public @ResponseBody

User GetUser(@RequestBody User user) {

user.setUserName("Wei");

return user;

}

}

控制器也很简单,但是就是请求不到Controller方法。因而我继续在网上寻找资料,直到看到一篇博客,才找到了问题的解决办法。

原来是Jackson的依赖问题,spring3.x和spring4.x是不一样的:spring

spring3.x是org.springframework.http.converter.json.MappingJacksonHttpMessageConverterjson

spring4.x是org.springframework.http.converter.json.MappingJackson2HttpMessageConvertermvc

具体能够查看spring-web的jar确认,哪一个存在用哪一个!app

在配置ViewResolver的时候应该指定响应的版本,因而我将springmvc的配置文件改成:dom

class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">

class="org.springframework.web.servlet.view.json.MappingJackson2JsonView">

仅仅将

MappingJacksonJsonView

改成

MappingJackson2JsonView 就解决了以前的415的问题。。。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。