我正在使用 AngularJS 1.4 和 Spring 4 RestController。当我在我的开发机器上发出 GET 请求时,一切正常。但是,当我将完全相同的 war 文件部署到我们的测试服务器时,来自完全相同的浏览器的完全相同的请求返回 HTTP 406 Not Acceptable。
两个环境之间的唯一区别在于我的开发机器上我使用的是嵌入式 Tomcat 8,而测试服务器上的应用程序部署在 Tomcat 7 上。
我的请求由一个包含电子邮件地址的路径变量组成。
发出请求的angularjs代码:
utilService.emailD = function(email) {
return $http({
method : 'GET',
url : 'util/emailD/' + encodeURIComponent(email)
}).then(
function successCallback(response) {
return response.data;
},
function errorCallback(response) {
return {
error : true
};
});
}
接受请求的弹簧控制器
@RequestMapping(value = "/emailD/{email:.+}",
method = RequestMethod.GET,
produces = MediaType.TEXT_PLAIN_VALUE)
public ResponseEntity<String> emailD(@Email @Valid @PathVariable(value = "email") String email) {
try {
log.debug("request emailD, email: {}", email);
//omitted irrelevant code
return new ResponseEntity<String>(someString, HttpStatus.OK);
} catch (IllegalArgumentException iae) {
return new ResponseEntity<>(HttpStatus.BAD_REQUEST);
}
}
您能想到有什么理由可能导致这种行为吗?