Ajax post 操作成功返回404
Ajax post returning 404 even when the operation is successful
我正在 ajax post 调用我的支持 spring 控制器。我看到由于 post,数据已成功保存在数据库中,但在浏览器控制台上,我看到 POST 抛出 404。此外,一旦调用 returns 来自 spring 控制器,ajax 调用的错误函数被调用。
谁能告诉我我在这里遗漏了什么。
$('#submitMessage').submit(function(e){
e.preventDefault();
var formData = {};
var msg=document.getElementById('iconLeft4-1');
var url = "${context}/wasadmin/support/ajax/send";
formData['comment']=msg.value;
formData['commented_by']='1';
formData['supportId']='1';
formData['userType']='O';
console.log(JSON.stringify(formData));
$.ajax({
type : 'POST',
contentType: "application/json",
url : url,
dataType : 'json',
data:JSON.stringify(formData),
success:function(data,status,xhr){
console.log('saved successfully');
},
error:function(data,status,xhr){
console.log('error occured'); // This gets printed
}
});
控制器
@PostMapping(value="/ajax/send")
public void sendSupportMessage(@RequestBody SupportConversationDTO supportConversationDTO) {
supportConversationService.save(supportConversationDTO);
return;
}
在您的 ajax 请求中,您使用的是 dataType:'json'
、jQuery’s Ajax-Related Methods 说明
// The type of data we expect back
dataType : "json",
但是从你的控制器,你 returning void!!!
您需要更新您的 ajax 请求,删除 dataType
并更新 success:function
$.ajax({
type : 'POST',
contentType: "application/json",
url : url,
data:JSON.stringify(formData),
success:function(data) {
console.log('saved successfully');
},
error:function(data,status,xhr) {
console.log('error occured');
}
});
然后更改您的控制器代码,return 从中添加一些内容并添加 @ResponseBody
@PostMapping(value="/ajax/send")
@ResponseBody
public String sendSupportMessage(@RequestBody SupportConversationDTO supportConversationDTO) {
supportConversationService.save(supportConversationDTO);
return "success";
}
我正在 ajax post 调用我的支持 spring 控制器。我看到由于 post,数据已成功保存在数据库中,但在浏览器控制台上,我看到 POST 抛出 404。此外,一旦调用 returns 来自 spring 控制器,ajax 调用的错误函数被调用。
谁能告诉我我在这里遗漏了什么。
$('#submitMessage').submit(function(e){
e.preventDefault();
var formData = {};
var msg=document.getElementById('iconLeft4-1');
var url = "${context}/wasadmin/support/ajax/send";
formData['comment']=msg.value;
formData['commented_by']='1';
formData['supportId']='1';
formData['userType']='O';
console.log(JSON.stringify(formData));
$.ajax({
type : 'POST',
contentType: "application/json",
url : url,
dataType : 'json',
data:JSON.stringify(formData),
success:function(data,status,xhr){
console.log('saved successfully');
},
error:function(data,status,xhr){
console.log('error occured'); // This gets printed
}
});
控制器
@PostMapping(value="/ajax/send")
public void sendSupportMessage(@RequestBody SupportConversationDTO supportConversationDTO) {
supportConversationService.save(supportConversationDTO);
return;
}
在您的 ajax 请求中,您使用的是 dataType:'json'
、jQuery’s Ajax-Related Methods 说明
// The type of data we expect back
dataType : "json",
但是从你的控制器,你 returning void!!!
您需要更新您的 ajax 请求,删除 dataType
并更新 success:function
$.ajax({
type : 'POST',
contentType: "application/json",
url : url,
data:JSON.stringify(formData),
success:function(data) {
console.log('saved successfully');
},
error:function(data,status,xhr) {
console.log('error occured');
}
});
然后更改您的控制器代码,return 从中添加一些内容并添加 @ResponseBody
@PostMapping(value="/ajax/send")
@ResponseBody
public String sendSupportMessage(@RequestBody SupportConversationDTO supportConversationDTO) {
supportConversationService.save(supportConversationDTO);
return "success";
}