我通过 post 请求向 java Restful Web api 发送响应式(Reactive)表单数据,但它显示 CORS 错误,而在 GET 请求中同样工作正常。我已经设置了 CORS header 以响应其余 api。
Angular 服务代码:
private headers = new Headers({ 'Content-Type': 'application/json'});
baseURL='http://127.0.0.1:8080/userInformation/rest/UserService';
addData(formdata: any){
var body = JSON.stringify(formdata);
return this.http.post(this.baseURL+'/adduser',body)
.subscribe(
res => {
console.log(res);
},
err => {
console.log('Error occured');
}
);
}
JAVA Rest API 代码:
@POST
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
@Path("/adduser")
public Response createUser(String val){
Gson gson = new Gson();
User user = gson.fromJson(val, User.class);
userDao.insertUser(user);
String result="SUCCESS";
return Response.ok().entity(result)
.header("Access-Control-Allow-Origin", "*")
.header("Access-Control-Allow-Methods", "GET, POST, DELETE, PUT, OPTIONS, HEAD")
.build();
}
标题说明: enter image description here 我认为当我们将数据发送到 REST API 时,我们需要将 CORS 原始 header 设置为我们的 Angular 代码。我怎样才能做到这一点?
最佳答案
您可以通过在 Controller 类声明上使用注释来解决它。
@RestController
@CrossOrigin(origins = "*", maxAge = 3600)
@RequestMapping({ "/controller" })
public class Controller {
}
关于java - 在 Angular 4 中将数据发送到 JAVA post REST API 时出现 CORS 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48350852/