vue.js

关注公众号 jb51net

关闭
首页 > 网络编程 > JavaScript > javascript类库 > vue.js > vue前后端端口不一致

vue前后端端口不一致的问题解决

作者:木..木

本文主要介绍了vue前后端端口不一致的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

在config index.js文件中

引入如下代码即可

const path = require('path')
const devEnv = require('./dev.env')
module.exports = {
    dev: {

        // Paths
        assetsSubDirectory: 'static',
        assetsPublicPath: '/',
        proxyTable: devEnv.OPEN_PROXY === false ? {} : {
            '/api': {
                target: 'http://localhost:8083',
                changeOrigin: true,
                pathRewrite: {
                    '^/api': '/'
                }
            }
        },
// Paths
        assetsSubDirectory: 'static',
        assetsPublicPath: '/',
        proxyTable: devEnv.OPEN_PROXY === false ? {} : {
            '/api': {
                target: 'http://localhost:8083', //需要更改的后端的端口号
                changeOrigin: true,
                pathRewrite: {
                    '^/api': '/'
                }
            }
        },
        这里的配置是正则表达式,以/api开头的将会被用用‘/api'替换掉,假如后台文档的接口是 /api/list/xxx
//前端api接口写:axios.get('/api/list/xxx') , 被处理之后实际访问的是:http://news.baidu.com/api/list/xxx
}
}},

解决前后端不同端口号的跨域请求问题 

拟定前端端口号8000;后端端口号是8070

前端使用的Vue框架,默认数据信息存储在 .eve.development中,需要配置(修改)前端数据发送的路径

NODE_ENV=development
//设置VUE_APP_PREVIEW=false ,
VUE_APP_PREVIEW=false 
//URL后接后端tomcat服务地址http://localhost:8070/
VUE_APP_API_BASE_URL=http://localhost:8070/

方式1,在后端启动文件同级目录,创建一个目录Corsconfig

package com.mashibing.config;
//当通过文件配置跨域请求时,则配置的是全局
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;
 
@Configuration
public class Corsconfig {
    private CorsConfiguration buildConfig() {
        CorsConfiguration corsConfiguration = new CorsConfiguration();
        // 设置属性
        // 允许跨域请求的地址,*表示所有
        corsConfiguration.addAllowedOrigin("*");
        //  跨域的请求头
        corsConfiguration.addAllowedHeader("*");
        //  跨域的请求方法
        corsConfiguration.addAllowedMethod("*");
        // 在跨域请求的时候使用同一个 Session
        corsConfiguration.setAllowCredentials(true);
        return corsConfiguration;
    }
    @Bean
    public CorsFilter corsFilter() {
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        //配置 可以访问的地址
        source.registerCorsConfiguration("/**", buildConfig());
        return new CorsFilter(source);
    }
}

方式2,通过注解的方式,在需要和前端交互数据的页面配置注解@CrossOrigin

package com.mashibing.controller;
 
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
 
@RestController
@CrossOrigin(origins = "*",methods = {},allowedHeaders = "*",allowCredentials = "true")
public class test {
    @RequestMapping("/auth/login")
    public String test1(){
        System.out.println("Success");
        return "";
    }
}

到此这篇关于vue前后端端口不一致的问题解决 的文章就介绍到这了,更多相关vue前后端端口不一致内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文