在springboot中使用 跨域 以及 来访者ip获取

使用 @CrossOrigin 注解允许后台跨域

在类上注解这个类
1
2
$ @CrossOrigin 
$ public class text()

获取ip地址 方法里传入HttpServletRequest request 然后调用request

1
2
$ public void text(HttpServletRequest request)
$ System.out.println("来访者ip可能是:"+request.getRemoteAddr())

可能前端处理过代理设置 会获取到127.0.0.1或者主机ip 而不是访问者ip

1
2
3
4
5
6
7
8
9
10
11
$ String ip = request.getHeader("x-forwarded-for");
$ if(ip ==null || ip.length() ==0 || "unknown".equalsIgnoreCase(ip)) {
$ ip = request.getHeader("Proxy-Client-IP");
$ }
$ if(ip ==null || ip.length() ==0 || "unknown".equalsIgnoreCase(ip)) {
$ ip = request.getHeader("WL-Proxy-Client-IP");
$ }
$ if(ip ==null || ip.length() ==0 || "unknown".equalsIgnoreCase(ip)) {
$ ip = request.getRemoteAddr();
$ }
$ System.out.println("真实的ip可能是:"+ip);

一个控制实现多个service

1
$  new对象 传值 调用service

vue前端处理跨域

在vue.config.js中添加此代码(此代码会在请求地址时候增加一个前缀api),请求地址就可以了直接写 get(“/“)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
$  module.exports = {
$ lintOnSave: false,
$ devServer: {
$ overlay: {
$ warning: false,
$ errors: false
$ },
$ proxy: {
$ '/api': {
$ // 此处的写法,目的是为了 将 /api 替换成 https://www.baidu.com/
$ target: 'http://127.0.0.1:1234/',
$ // 允许跨域
$ changeOrigin: true,
$ ws: true,
$ pathRewrite: {
$ '^/api': ''
$ }
$ }
$ }
$ },
$ }