我收到了400个关于AJAX Post方法的错误请求。我在Backend使用Spring Data Rest Services。下面是我在JS前端的代码
var url = "/udb/data/SecurityRoleGroup",
groupData = {id:"",name:"",accesslevel:"",roles:[]};
groupData.id = groupId.val();
groupData.name = groupName.val();
groupData.accesslevel = groupDescription.val();
groupData.roles = multiselect_to.val();
$.ajax(url, { type: 'POST',
dataType: 'json',
headers: {
'X-CSRF-Token': _csrfGroup.val(),
'Content-Type' : 'application/json'
},
data: JSON.stringify(groupData),
contentType: 'application/json',
})
.done(function(results) {
showMessage.html("Group details are saved successfully.");
showMessage.removeClass().addClass("alert alert-success").show();
})
.fail( function(xhr, textStatus, errorThrown){
showMessage.html("Error : Rolegroup AJAX request failed! Please try again.");
showMessage.removeClass().addClass("alert alert-danger").show();
});
虽然我正在序列化JSON数据。我仍然收到400 Bad Request错误。如果某些代码在后端中断或者发送到服务器的请求出现问题,是否会出现此错误?
JAVA实施
@RepositoryRestResource(collectionResourceRel = "SecurityRoleGroup", path = "SecurityRoleGroup")
public interface SecurityRoleGroupRepository extends PagingAndSortingRepository<SecurityRoleGroup, Long> {
}
答案 0 :(得分:5)
如果您的数据中包含spl字符,则需要在发送到服务器之前对数据进行编码。试试这个
$.ajax(url, { type: 'POST',
dataType: 'json',
headers: {
'X-CSRF-Token': _csrfGroup.val(),
'Content-Type' : 'application/json'
},
data: encodeURI(JSON.stringify(groupData)),
contentType: 'application/json',
})
答案 1 :(得分:0)
1.为什么需要发送数据转换字符串,您可以按原样发送数据 2.因为您在数据类型中定义为json,所以不需要将内容类型作为application / json 3.如果你在这里使用post方法,请确保你在服务器端处理相同的方法