今天,我在写完后台服务之后,在浏览器通过地址栏调用服务均是正常的,然后我在前端项目中通过ajax来请求该服务,前台控制台一直报错No 'Access-Control-Allow-Origin' header is present on the requested resource,我查看了后台以及对应的数据库,后台流程全部走完并成功的插入了数据库,就是前台报错,经过搜索了很多网上的资料,有的说在前台加跨域头,但是加了之后也没什么效果,最后查得是浏览器禁止ajax请求本地以外的资源,所以,解决办法是在后台Controller层上加一个注解CrossOrigin即可,如:
@CrossOrigin
@Controller
@RequestMapping("/problem")
@ResponseBody
public class ProblemController implements Serializable {
private static final long serialVersionUID = -5098277858472063709L;
@Autowired
private IProblem problem;
@RequestMapping("/add")
public OResult addProblem(@RequestParam(value="userName")String userName,@RequestParam(value="producdId")Integer producdId, @RequestParam(value="problemDesc")String problemDesc, @RequestParam(value="content")String content){
return problem.addProblem(userName, producdId, problemDesc, content);
}
}
加上该注解之后,再去前台访问,就可以成功了。