显示发生错误的java Ajax请求:Spring mvc maven项目
当ajax调用发生时,它显示错误发生,而没有任何tomcat错误日志。而在浏览器上显示的是400
这是我的ajax调用
var data = {
"topic" : $("#topic").val()}
$.ajax({
type : "GET",
contentType : "application/json",
url : "./saveSyllabus",
data : JSON.stringify(data),
dataType : 'json',
timeout : 100000,
success : function(data) {
console.log("SUCCESS: ", data);
alert("Record Added Successfully!!")
},
error : function(e) {
console.log("ERROR: ", e);
alert("Error Occured!!")
},
done : function(e) {
console.log("DONE");
enableSearchButton(true);
}
});
控制器代码:
@Controller
public class RegistrationController {
@Autowired
UserCreationService userCreationService;
@Autowired
SyllabusService syllabusService;
@RequestMapping(value="/saveSyllabus",method=RequestMethod.GET)
public @ResponseBody String saveSyllabus(@RequestParam String topic) {
System.out.println("in registration controller");
Integer id= syllabusService.saveSyllabus(syllabusDetails);
return id;
}
}
我还添加了所需的从属关系:
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${jackson.version}</version>
</dependency>
# 1 楼答案
您的问题是控制器配置为在主体中响应,但您正在执行重定向,在您的情况下,您似乎想要重定向,因此请删除@ResponseBody:
当您执行重定向时,这应该是一个浏览器URL调用,而不是Ajax调用
相反,如果你想回应身体,试试这个
及
注意@ReuqestParam更改为@RequestBody,方法内容也更改了
# 2 楼答案
您正在使用@ResponseBody从@Controller返回一个字符串值,但您的AJAX希望从Controller
datatype: 'json',
返回一个JSON响应。将AJAX响应预期更改为HTMLdatatype : 'HTML',
,它将返回状态200