HTTP Status 405 – Method Not Allowed
Type Status Report
Message Request method 'GET' not supported
Description The method received in the request-line is known by the origin server but not supported by the target resource.
Apache Tomcat/9.0.0.M22
百度了很多方法,CSDN上也有很多相关解决,但是我这个问题的原因比较幼稚。
MySQL+ibaits+spring
Controller:
@SuppressWarnings("unchecked")
@RequestMapping(value = "/student/exam-submit", method = RequestMethod.POST)
@ResponseBody public Message finishExam(@RequestBody ExamFinishParam efp) {
}
Bean:
@XmlRootElement
public class ExamFinishParam implements Serializable {
private static final long serialVersionUID = 4265690784518580278L;
private int exam_history_id;
private int duration;
private int userid;
}
js:
var request = $.ajax({
headers : {
'Accept' : 'application/json',
'Content-Type' : 'application/json; charset=utf-8'
},
type : "POST",
url : "student/exam-submit",
data : JSON.stringify(data)
});
问题出在BEAN中主键ID类型是int。后来做的修改数据库主键改为了bigint,JAVA中的int存放不下,后台也没有报错,将ID类型改为long即可。
即提交的表单字段要与bean的类型完全对应,否则请求并不能完全对应识别。
解决办法是这样,具体原理是我自己的理解,还请大佬们指正。