使用@CrossOrigin注解解决微服务项目跨域问题

实现跨域注解
origin="*"代表所有域名都可访问
maxAge飞行前响应的缓存持续时间的最大年龄,简单来说就是Cookie的有效期 单位为秒
若maxAge是负数,则代表为临时Cookie,不会被持久化,Cookie信息保存在浏览器内存中,浏览器关闭Cookie就消失
第一种方法不需要填写参数

@CrossOrigin

第二种方法,可以填写参数

@CrossOrigin(origins = "*", maxAge = 3600)

第一种用法,在Controller类上使用

@CrossOrigin(origins = "*", maxAge = 3600)
@RestController
public class CatalogController {

    @Reference
    CatalogService catalogService;

    /**
     * 一级类目
     */
    @RequestMapping("getCatalogone")
    public List<PmsBaseCatalog1> getCatalogone(){

        List<PmsBaseCatalog1> catalogone = catalogService.getCatalogone();
        return catalogone;
    }

    /**
     * 二级类目
     */
    @RequestMapping("getCatalogtwo")
    public List<PmsBaseCatalog2> getCatalogtwo(){
        List<PmsBaseCatalog2> catalogtwo = catalogService.getCatalogtwo();
        return catalogtwo;
    }
}

第二种用法,在映射方法上使用

@RestController
public class CatalogController {

    @Reference
    CatalogService catalogService;

    /**
     * 一级类目
     */
    @CrossOrigin(origins = "*", maxAge = 3600)
    @RequestMapping("getCatalog1")
    public List<PmsBaseCatalog1> getCatalogone(){

        List<PmsBaseCatalog1> catalogone = catalogService.getCatalogone();
        System.out.println("一级类目方法被调用了");
        return catalogone;
    }

    /**
     * 二级类目
     */
    @CrossOrigin(origins = "*", maxAge = 3600)
    @RequestMapping("getCatalog2")
    public List<PmsBaseCatalog2> getCatalogtwo(){
        List<PmsBaseCatalog2> catalogtwo = catalogService.getCatalogtwo();
        return catalogtwo;
    }
}
Last modification:December 27th, 2019 at 09:36 pm
如果觉得这篇技术文章对你有用,请随意赞赏

Leave a Comment