前后端跨域常用解决方案

简介: 前后端跨域常用解决方案

因为浏览器有同源策略,所以我们无法跨域请求,但相应的我们也有几套成熟的解决方案。

一.前端方案

1.jsonp跨域

https://blog.csdn.net/qq_32442973/article/details/120100239

2.反向代理服务跨域

i:什么叫反向代理?

反向代理指的是在前端的服务器环境中, 短暂的开启一个后端服务器, 由后端服务器进行数据请求, 然后在将结果返回给前端

ii:使用工程化工具自带的 反向代理服务(webpack)

iii:使用第三方提供的反向代理服务(gulp中的http-proxy-middleware)

操作流程:

初始化:

npm init -y

安装gulp:

npm install gulp

安装gulp-webserver服务:

npm install gulp-webserver

gulpfile.js文件配置:

const gulp = require('gulp') //引入gulp
const server = require('gulp-webserver') //引入gulp-webserver服务
const proxy = require('http-proxy-middleware') //引入http代理服务
gulp.task('server', function() {
    gulp.src('./')
        .pipe(server({
            port: 9001,
            host: 'localhost',
            livereload: true,
            // directoryListing: {
            //   enable: true,
            //   path: '/'
            // },
            open: true,
            allowEmpty: true,
            middleware: [
                // proxy(标记,配置项)
                // proxy('/yyb', {
                //     target: 'http://127.0.0.1:3001/get',
                //     changeOrigin: true,
                //     pathRewrite: {
                //         '^/yyb': ''
                //     }
                // }),
                proxy('/users', {
                    target: 'http://localhost:3000',
                    changeOrigin: true
                }),
                // proxy('/login', {
                //     target: 'http://localhost:3000',
                //     changeOrigin: true
                // })
            ]
        }))
})

二.后端方案

在后端接口项目中增加CorsConfig.java即可,代码如下
@Configuration
public class CorsConfig {
    private CorsConfiguration buildConfig() {
        CorsConfiguration corsConfiguration = new CorsConfiguration();
        corsConfiguration.addAllowedOrigin("*"); // 1 设置访问源地址
        corsConfiguration.addAllowedHeader("*"); // 2 设置访问源请求头
        corsConfiguration.addAllowedMethod("*"); // 3 设置访问源请求方法
        return corsConfiguration;
    }
    @Bean
    public CorsFilter corsFilter() {
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        source.registerCorsConfiguration("/**", buildConfig()); // 4 对接口配置跨域设置
        return new CorsFilter(source);
    }
}
相关文章
|
6月前
|
前端开发 JavaScript 安全
跨域的五种最常见解决方案
跨域的五种最常见解决方案
109 0
|
Web App开发 JSON 前端开发
前端跨域解决方案-汇总
前端跨域解决方案-汇总
153 0
|
30天前
|
JavaScript 前端开发 安全
跨域解决方案有哪些?
本文介绍了多种跨域解决方案,包括JSONP、CORS、postMessage、WebSocket、document.domain+iframe、window.name、location.hash、Node.js代理、Nginx代理和CORS Anywhere。每种方法都有其适用场景和优缺点,如JSONP简单但只支持GET请求,CORS安全但兼容性稍差,WebSocket适用于实时通信但需服务器支持。开发者可根据具体需求选择合适的跨域方案。
39 3
跨域解决方案有哪些?
|
5月前
|
安全 Java 应用服务中间件
详细介绍几种处理后端跨域问题的方案
详细介绍几种处理后端跨域问题的方案
|
6月前
|
运维 前端开发 JavaScript
关于跨域,和跨域问题的完整解决方案
关于跨域,和跨域问题的完整解决方案
56 0
|
6月前
|
Web App开发 移动开发 运维
跨域解决方案[前端+后端]
跨域解决方案[前端+后端]
88 0
|
移动开发 前端开发 JavaScript
前端跨域的解决方案?
前端跨域的解决方案?
107 0
|
6月前
后端解决跨域(极速版)
后端解决跨域(极速版)
57 0
后端解决跨域(极速版)
|
6月前
|
JSON JavaScript 前端开发
跨域的原理及解决方案
同源策略是Web应用程序安全性模型中的重要概念。根据该策略,Web浏览器允许第一个网页中包含的脚本访问第二个网页中的数据,但前提是两个网页具有相同的来源。来源由URI,主机名和端口号的组合定义。此策略可防止一个页面上的恶意脚本通过该页面的DOM(Document Object Model)获得对另一网页上敏感数据的访问。 JSONP 由于同源策略,一般来说位于server1.example.com...
|
移动开发 JavaScript 前端开发
前端常见跨域解决方案(全)
前端常见跨域解决方案(全)
859 0