解决跨域方案

本文介绍了多种跨域问题的解决办法,包括后端的CORS和JSONP,前端的Webpack代理,以及运维中的Nginx反向代理。同时提到了Webpack Dev Middleware和修改浏览器设置如Chrome的解决方案。
摘要由CSDN通过智能技术生成

后端解决

1.cors 优先使用

在这里插入图片描述

2.jsonp(只能解决get请求)

import jsonp from 'jsonp'
jsonp(url,option,(err,data)=>{    
       //这里的url就是完整的请求地址,需要包括请求参数
       if(!err){
         resolve(data)  //请求成功  data是响应回来的数据
       }else{
         reject(err)  //失败
       }

前端解决

3.webpack配置代理:webpack proxy(打包后webpack没有了)

module.exports = {
  devServer: {
       Proxy: {
            '/api': {
                target: 'https://bytmall.ukelink.net',
                pathRewrite: {
                    '^/api/interfaces': 'interfaces',
                    '^/api/frame': 'frame',
                },
                changeOrigin: true  //target是域名的话,需要这个参数
            },
            'api2': {
                ...
            }
        }
      }
   }

配置中主要的参数说明:
1.’/api’捕获api的标志,如果api中有这个字符串,就开始匹配代理

 例如: 访问"/api/frame/web/cms/common"会被代理转发到请求https://bytmall.ukelink.net/api/frame/web/cms/common

 注:以"/"开头,表示该请求基于从服务器的根路径,如果没有指定请求基地址,我们开发环境看到的请求路径是http://localhost:8080 + /api/frame/web/cms/common

2.'target’代理的api地址,就是需要跨域的地址

3.'pathRewrite’路径重写,会修改最终请求的api路径

4.nginx反向代理(中间件) 运维配置

5.webpack plugin -->webpack-dev-middleware

在这里插入图片描述

6.修改谷歌浏览器(新版本)

右击浏览器属性
在这里插入图片描述
加上:chrome.exe --disable-site-isolation-trials --disable-web-security --user-data-dir=“D:\temp” 等于号后面自定义一个路径

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值