【问题标题】:415 Unsupported Media Type Error With Dojo and Spring MVC415 Dojo 和 Spring MVC 不支持的媒体类型错误
【发布时间】:2015-02-25 11:59:48
【问题描述】:

我正在尝试使用 Dojo post 即 dojo.xhrPost() 方法发布 Json 数据。我在堆栈中发现了许多没有解决我的问题的解决方案。我正在使用 content -type 'application/json' 传递 json 数据。请在下面找到客户端(JS)和服务器(Spring MVC 控制器)的代码 sn-p。

我在我的 Lib 文件夹中添加了以下 jar 用于 JSON 转换

1.jackson-core-asl-1.9.10.jar

2.jackson-mapper-asl-1.9.10.jar

3.jackson-jaxrs-1.9.13.jar

点:传递的 JSON 数据格式正确。 JSP 是我的视图解析器。

var map = dojo.toJson({id:'1',name:'er'})
var xhrArgs = {
        url : _context+'/exchangeRate/save-exchange',
        postData : map,
        handleAs: "json",
        headers : {
            'Content-Type' : 'application/json,charset=utf-8',

        },
        load : function(response) {
            console.log(response);
        },
        error : function(error_msg, details) {
            alert(error_msg);
            console.log(details)
        }
    }
dojo.xhrPost(xhrArgs);

下面是我的 Spring 控制器方法

@RequestMapping(value = "/exchangeRate/save-exchange", 方法 =

RequestMethod.POST,headers= { "content-type=application/json" },consumes

="application/json",produces = "application/json")

公共@ResponseBody

Map saveExchangeRate(@RequestBody Map map) {

return new Hashmap();

}

【问题讨论】:

    标签: spring dojo


    【解决方案1】:

    添加 ACCEPT-header 来接受 application/json 怎么样?

    headers : {
            'Accept' : 'application/json',
    },
    

    此外,您的内容类型标头格式不正确。使用; 而不是,。

    headers : {
        'Accept' : 'application/json',
        'Content-Type' : 'application/json;charset=utf-8',
    },
    

    【讨论】:

      【解决方案2】:

      使用
      contentType: 'application/json',
      而不是
      handleAs: "json",

      【讨论】:

        猜你喜欢
        • 2013-08-08
        • 1970-01-01
        • 2023-03-04
        • 2017-05-20
        • 2014-11-04
        • 2014-02-16
        • 2021-10-12
        • 2016-09-10
        • 2015-06-18
        相关资源
        最近更新 更多