问题描述:
Ionic serve 在浏览器中调试时IP是:http://localhost:8100
而我的本机的服务端的IP是:http://localhost:8080
所以存在跨域访问的问题。
解决方法
【1】设置response(此处只是了解,最终解决方案在下面)
response.setHeader(“Access-Control-Allow-Origin”, “*”);
@RequestMapping(value="/course/{id}",method=RequestMethod.GET)
public @ResponseBody Course GetCourse(@PathVariable("id") String courseid,HttpServletResponse response){
Course course=new Course();
course.setId(courseid);
//course.setCode(coursecode);
course.setCourseName("高等数学");
response.setHeader("Access-Control-Allow-Origin", "*"); //允许哪些url可以跨域请求到本域
return course;
}
此种解决方法缺点:这样的话,每个方法都得传入HttpServletResponse作为一个参数
改进:使用拦截器
拦截器定义
public class ResponseInterceptor implements HandlerInterceptor {
public boolean preHandle(HttpServletRequest request, HttpServletResponse response,
Object obj) throws Exception {
response.setHeader("Access-Control-Allow-Origin", "*"); //设置允许哪些url可以跨域请求到本域,*表示所有