gpt4 book ai didi

jquery - 发送 JSON 数据到服务器错误

转载 作者:行者123 更新时间:2023-12-01 03:02:20 26 4
gpt4 key购买 nike

我想将 JSON 数据发送到 Controller 的 POST 处理程序。我在客户端这样做:

var userName = $('#userName').val();
var password = $('#password').val();
var mail = $('#mail').val();
var admin =$("#admin").is(':checked');
var user = {userName: userName, password: password, mail: mail, admin:admin};

$.ajax({
async : false,
type:'POST',
url: '/uxiy/webapp/uxmer',
data: user,
dataType: 'json',
success: function(data) {
...
},
error: function(data) {
...
}
});

我的Spring Controller 如下:

@RequestMapping(method = RequestMethod.POST)
public void createUser(HttpServletResponse response, @RequestBody User user) {
user.setName("POST worked");
//todo If error occurs response.sendError(HttpServletResponse.SC_NOT_FOUND);
response.setStatus(HttpServletResponse.SC_OK);
}

但是,当我发送数据时,我在 Firebug 中收到该错误:

"NetworkError: 415 Unsupported Media Type"

出了什么问题?

PS:Firebug POST 详细信息示例:

Parameters  application/x-www-form-urlencoded
admin true
mail user@user.com
password r
userName userx
Source
userName=userx&password=r&mail=user%40user.com&admin=true

PS2:添加后

contentType: 'application/json',

它开始给予

"NetworkError: 400 Bad Request" 

可能是什么问题,进行序列化等?

PS3:这里:http://blog.springsource.com/2010/01/25/ajax-simplifications-in-spring-3-0/它说:

If there are validation errors, a HTTP 400 is returned with the error messages, otherwise a HTTP 200 is returned.

我遇到 400 错误请求错误。也许问题与此有关?

最佳答案

问题与 JSON 数组有关。从客户端发送到服务器的不是有效的 JSON 字符串。

<小时/> 编辑

为了澄清这一点,我偶然发现了这篇文章。需要在 Ajax 请求中执行正确的 JSON.stringify(data)。这很奇怪,但它不是由 .ajax 函数在设置相应的 dataType 时完成的。

$.ajax({
async : false,
type:'POST',
url: '/uxiy/webapp/uxmer',
data: JSON.stringify(user),
dataType: 'json',
success: function(data) {
...
},
error: function(data) {
...
}
});

关于jquery - 发送 JSON 数据到服务器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7481055/

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