springboot解决跨域问题

随着互联网的发展,现在在企业开发中有好多都是前后端分离的开发模式,这种模式的开发必然造成了请求跨域问题,然而springboot的CORS组件很好的解决了跨域问题,下面怎么就通过一个小实例看看CORS组件是怎么来解决跨域问题的。

首先需要窗前一个服务提供项目,项目代码如下

编写一个服务控制类

package com.fyn.springboot.corsone.controller;

import com.fyn.springboot.corsone.UrlUtils;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("/user")
public class UserController {
    /**
     * 其中@CrossOrigin中的value表示所支持的域,maxAge探测请求有效期
     * allowedHeaders 表示的是请求头而"*"表示的是左右请求头
     * @param name
     * @return
     */
    @PostMapping("/")
    @CrossOrigin(value = UrlUtils.CROS,maxAge = 1800,allowedHeaders = "*")
    public String addUser(String name){
        return "receive:"+name;
    }
    @DeleteMapping("/{id}")
    @CrossOrigin(value = UrlUtils.CROS,maxAge = 1800,allowedHeaders = "*")
    public String deleteUserById(@PathVariable Long id){
        return String.valueOf(id);
    }
}

其中的UrlUtils是一个地址工具类,为什么推荐创建一个工具类了,是为了方便地址维护,若是在控制类中写死地址,那后期地址变更将会是一个作死的操作,少则改变十几个文件,多则几十个文件上千上万行代码需要变更,我无法想象,不寒而粟呀!

package com.fyn.springboot.corsone;

public class UrlUtils {
    public static final String CROS = "http://127.0.0.1:8081";
}

这样我们就创建完了一个服务方的项目,当然我在这里没有配置请求端口,默认使用的是:8080

下面来创建一个服务调用方项目,是个新springboot项目;

这里只需要写一个index.html页面放到static文件目录下,jquery.js文件自行引入。

页面代码如下




    
    跨域测试







这里所发送的ajax请求的是另一个程序的服务,这样就产生了跨域问题。当然前提需要配置文件修改端口为:8081否则两个五福同端口你就GG了

然后测试看看结果吧!

你可能感兴趣的:(spring-boot,springboot跨域)