【发布时间】:2016-07-22 06:43:08
【问题描述】:
我正在尝试在 Spring Boot 中使用 webService 我有我的 RestControllerPage :
@RequestMapping(
value="/api/user/connection",
method = RequestMethod.POST,
consumes = MediaType.APPLICATION_JSON_VALUE,
produces=MediaType.APPLICATION_JSON_VALUE
)
public ResponseEntity<User> connect(@RequestBody Authentification authentification){
try {
if (authentification.getLogins() == "" || authentification.getLogins() == null) {
return new ResponseEntity<User>(HttpStatus.INTERNAL_SERVER_ERROR);
}
String val = Md5.md5(authentification.getPwd());
int nbuser = userDao.countUser(authentification.getLogins(), val);
// we get the user for update the token
LinkedList<User> listUser = userDao.findByLoginsAndPwd(authentification.getLogins(), val);
if (listUser.get(0).getToken() == "" || listUser.get(0).getToken() == null) {
listUser.get(0).setToken(Md5.md5(listUser.get(0).getId() + listUser.get(0).getLogins()));
}
if (userDao.save(listUser.get(0)) == null) {
return new ResponseEntity<User>(HttpStatus.INTERNAL_SERVER_ERROR);
}
return new ResponseEntity<User>(listUser.get(0),HttpStatus.OK);
}catch(Exception e){
return new ResponseEntity<User>(HttpStatus.INTERNAL_SERVER_ERROR);
}
}
为了联系这个网络服务,我在 Spring Boot Server 的其他页面中使用 Jquery:
<html>
<head>
<script type="text/javascript" src="https://code.jquery.com/jquery-1.12.0.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('#BtnValidate').click(function(){
$.ajax({
type: "POST",
contentType: 'application/json',
dataType:'json',
url:'http://localhost:9000/api/user/connection',
data:JSON.stringify({
logins:$('#Txtlogin').val(),
pwd:$('#TxtPwd').val()
}),
success: function(data){
$('.notification').html("<p> response : "+data.d+"</p>");
},
error:function(){
alert('Error in the webService');
}
});
return false;
});
});
</script>
</head>
<body>
<label>Login : </label>
<input type="text" id="Txtlogin">
<br/>
<label>Pwd : </label>
<input type="pwd" id="TxtPwd">
<br/>
<input type="button" id="BtnValidate" value="validate"/>
<div class="notification">
</div>
</body>
</html>
我得到这个错误:
No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access. The response had HTTP status code 403.
我真的很锁。
谢谢
【问题讨论】:
-
我相信已经给出了答案here。
-
可以为请求设置访问控制标头吗?种类相关,本文mydaytodo.com/cors-issue-and-nodejs-proxy 讨论解决CORS问题,但使用NodeJS
标签: javascript jquery spring-mvc spring-boot