我收到了关于AJAX Post方法的400 Bad Request。我在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> {
}
如果数据中有特殊字符,则需要在发送到服务器之前对数据进行编码。试试这个
$.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.为什么你需要发送数据转换字符串你可以按原样发送数据2.你不需要将内容类型作为application / json,因为你在数据类型3中定义为json。如果你在这里使用post方法,请确保你在服务器端处理相同的事情