问题描述:
由vue-resource发起请求:
发生以下错误:
第一种方式
如下例所示:
@RestController
public class PageController {
@Resource
private PageService pageService;
private CommonResult<JdIpad> commonResult=new CommonResult<>();
@GetMapping("/page/get")
public CommonResult<JdIpad> getResult(@RequestParam("currentPage") Integer currentPage,
@RequestParam("pageSize") Integer pageSize,HttpServletResponse response){
Page<JdIpad> page = pageService.getPage(currentPage, pageSize);
commonResult.setCode(200);
commonResult.setMessage("查询成功");
commonResult.setPage(page);
return commonResult;
}
}
添加response参数,并设置响应头:
response.setHeader("Access-Control-Allow-Origin","*");
response.setHeader("Cache-Control","no-cache");
@RestController
public class PageController {
@Resource
private PageService pageService;
private CommonResult<JdIpad> commonResult=new CommonResult<>();
@GetMapping("/page/get")
public CommonResult<JdIpad> getResult(@RequestParam("currentPage") Integer currentPage,
@RequestParam("pageSize") Integer pageSize,HttpServletResponse response){
//1.解决跨域问题
response.setHeader("Access-Control-Allow-Origin","*");
response.setHeader("Cache-Control","no-cache");
Page<JdIpad> page = pageService.getPage(currentPage, pageSize);
commonResult.setCode(200);
commonResult.setMessage("查询成功");
commonResult.setPage(page);
return commonResult;
}
}
第二种方式
在PageController上添加一个@CrossOrigin注解
@RestController
@CrossOrigin //2.解决跨域问题
public class PageController {
@Resource
private PageService pageService;
private CommonResult<JdIpad> commonResult=new CommonResult<>();
@GetMapping("/page/get")
public CommonResult<JdIpad> getResult(@RequestParam("currentPage") Integer currentPage,
@RequestParam("pageSize") Integer pageSize){
Page<JdIpad> page = pageService.getPage(currentPage, pageSize);
commonResult.setCode(200);
commonResult.setMessage("查询成功");
commonResult.setPage(page);
return commonResult;
}
}
即可完美解决跨域问题!