gpt4 book ai didi

java - 当我尝试将 JSON 发送到 Spring MVC Controller 时,415 不支持的媒体类型

转载 作者:行者123 更新时间:2023-12-01 13:18:16 24 4
gpt4 key购买 nike

当我尝试将 JSON 发送到 Spring MVC Controller 时,我得到:

POST http://localhost:8084/springAndHibernate/greet 415 (Unsupported Media Type)

这是应该捕获“JSON 的方法的声明:

@RequestMapping(headers ={"Accept=application/json"},value="/greet")
public String greetUser(@RequestBody Logins newLogin){

我认为它应该将 JSON 映射到 Logins.java 类,该类位于此处:

package newpackage;

public class Logins implements java.io.Serializable {


private int id;
private String login;
private String password;

public Logins() {
}


public Logins(int id) {
this.id = id;
}
public Logins(int id, String login, String password) {
this.id = id;
this.login = login;
this.password = password;
}

public int getId() {
return this.id;
}

public void setId(int id) {
this.id = id;
}
public String getLogin() {
return this.login;
}

public void setLogin(String login) {
this.login = login;
}
public String getPassword() {
return this.password;
}

public void setPassword(String password) {
this.password = password;
}

}

我以这种方式使用 jQuery ajax() 方法发送 POST:

 function onGreetingButtonClicked(e){

var contextPath='<%=request.getContextPath()%>';
jsonData = {
id: 0,
login: $("#loginInput").val(),
password: $("#passwordInput").val()
};
console.log(JSON.stringify(jsonData));
console.log((contextPath + "/greet").toString());
urlAddress = (contextPath + "/greet")

$.ajax({type: "POST",
url: urlAddress,
data: JSON.stringify(jsonData),
success: onSuccess,
contentType: "application/jsonp; charset=utf-8",
dataType: null,
traditional: true});
e.preventDefault();
}
function onSuccess(data){
alert(data);
}

当我删除

@RequestBody

from 方法没有错误,但随后我得到了带有 null 作为字段值的 Logins 对象。

如果有人愿意帮助我,我会很高兴,预先感谢您。

最佳答案

根据各种其他帖子,您应该将 contentType 设置为 “application/javascript”

我还看到了使用“application/json”的建议,但看看 Wikipedia page ,很明显 JSON-P 实际上不是有效的 JSON,因此 MIME 类型不正确,尽管某些浏览器显然知道如何处理该错误。

无论如何,“application/jsonp” 是不正确的,因为它不是注册的 MIME 类型。

关于java - 当我尝试将 JSON 发送到 Spring MVC Controller 时,415 不支持的媒体类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22284573/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com