Spring Framework 4.2 GA为CORS提供了第一类支持,使您比通常的基于过滤器的解决方案更容易和更强大地配置它。所以springMVC的版本要在4.2或以上版本才支持@CrossOrigin
package com.mmz.base.controller;
import com.mmz.base.pojo.Label;
import com.mmz.base.service.LabelService;
import entity.Result;
import entity.StatusCode;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.persistence.Id;
/**
* @Classname BaseController
* @Description TODO
* @Date 2020/3/18 20:04
* @Created by mmz
*/
@RestController
@CrossOrigin
@RequestMapping("/label")
public class LabelController {
@Autowired
private LabelService labelService;
@RequestMapping(method = RequestMethod.GET)
public Result findAll(){
return new Result(true, StatusCode.OK,"查询成功",labelService.findAll());
}
@RequestMapping(method = RequestMethod.GET,value = "/{labelId}")
public Result findById(@PathVariable String labelId){
return new Result(true, StatusCode.OK,"查询成功",labelService.findById(labelId));
}
@RequestMapping(method = RequestMethod.POST)
public Result save(@RequestBody Label label){
labelService.save(label);
return new Result(true, StatusCode.OK,"添加成功");
}
@RequestMapping(method = RequestMethod.PUT,value = "/{labelId}")
public Result update(@RequestBody Label label,@PathVariable String labelId){
label.setId(labelId);
labelService.update(label);
return new Result(true, StatusCode.OK,"更新成功");
}
@RequestMapping(method = RequestMethod.DELETE,value = "/{labelId}")
public Result deleteById(@PathVariable String labelId){
labelService.delete(labelId);
return new Result(true, StatusCode.OK,"删除成功");
}
}
本篇我的代码就加上了这个跨域请求
其中@CrossOrigin中的2个参数:
origins : 允许可访问的域列表
maxAge:准备响应前的缓存持续的最大时间(以秒为单位)
深入一下跨域,以前也遇到过一些问题
建议阅读 关于跨域