vue跨域解决方案反向代理_怎么解决跨域问题

vue跨域解决方案反向代理_怎么解决跨域问题文章目录前言一、跨域是什么?二、解决跨域的办法前言跨域错误信息AccesstoXMLHttpRequestat‘http://192.168.2.92:3000/api/b/home’fromorigin‘http://localhost:8080’hasbeenblockedbyCORSpolicy:Responsetopreflightrequestdoesn’tpassaccesscontrolcheck:ItdoesnothaveHTTP


Jetbrains全系列IDE稳定放心使用

前言

跨域错误信息

Access to XMLHttpRequest at ‘http://192.168.2.92:3000/api/b/home’ from origin ‘http://localhost:8080’ has been blocked by CORS policy: Response to preflight request doesn’t pass access control check: It does not have HTTP ok status.
在这里插入图片描述

一、跨域是什么?

当一个请求url的协议、域名、端口三者之间任意一个与当前页面url不同即为跨域
举例说明:

#协议跨域
http://a.baidu.com 访问 https://a.baidu.com;
#端口跨域
http://a.baidu.com:8080 访问  http://a.baidu.com:80;
#域名跨域
http://a.baidu.com  访问  http://b.baidu.com;

二、解决跨域的办法

1.这里以使用vue脚手架生成的标准项目为准。一般在项目config目录下面有个index文件

module.exports = { 
   
    publicPath: './',
    lintOnSave: true,
    configureWebpack: { 
   
        //关闭 webpack 的性能提示
        performance: { 
   
            hints:false
        }
    
    },
    devServer: { 
   
        proxy: { 
   
            '/api': { 
   
                target: 'http://192.168.2.90:3000',//后端接口地址
                changeOrigin: true,//是否允许跨越
                pathRewrite: { 
   
                    '^/api': '/api'//重写,
                }
            }
        }
    }
}

此方法只能在开发环境中使用。
后端请求地址是http://192.168.92.2:3000,所有api的接口url都以/api开头。
所以首先需要匹配所有以/api开头的.然后修改target的地址为http://192.168.2.92:9090。
最后修改pathRewrite地址:将前缀’^api’转为’/api’。
如果本身的接口地址就有’/api’这种通用前缀,就可以把pathRewrite 删掉。

2.配置一下axios.defaults.baseURL = ‘/api’这样就可以保证动态的匹配生产和开发环境的定义前缀,代码如下:

// mock服务器
axios.defaults.baseURL ='/api';

3.重新启动项目,发现解决了跨域问题
在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/186965.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • users的权限_user是啥

    users的权限_user是啥MySQL在安装时会自动创建一个名为mysql的数据库,mysql数据库中存储的都是用户权限表。用户登录以后,MySQL会根据这些权限表的内容为每个用户赋予相应的权限。user表是MySQL中最重要的一个权限表,用来记录允许连接到服务器的账号信息。需要注意的是,在user表里启用的所有权限都是全局级的,适用于所有数据库。user表中的字段大致可以分为4类,分别是用户列、权限列、安全列、资源控制列,下面主要介绍这些字段的含义。用户列用户列存储了用户连接MySQL

    2022年9月29日
  • aria2最新tracker服务器,Aria2自动更新BT Tracker服务器列表的方法「建议收藏」

    aria2最新tracker服务器,Aria2自动更新BT Tracker服务器列表的方法「建议收藏」说明公开的BTtracker服务器,因为种种原因总会经常失效,要想获取更多的peer需要经常维护这份列表。感谢github上的小伙伴提供了这么一份tracker自动更新列表:https://github.com/ngosang/trackerslist。我们要想Aria2也支持自动更新这份列表,那么你可以按照下面方法来实现。关于Aria2安装使用教程可参考:https://www.moerats…

    2022年6月16日
  • SIGABRT错误的调试办法[通俗易懂]

    iOS经常会遇到一个头疼的error就是在main函数上显示“Thread1:signalSIGABRT”这个错误,终于在stackoverflow上找到了调试的办法: 原文链接:http://stackoverflow.com/questions/9782621/i-have-an-error-in-main-m-thread-1-signal-sigabrt-how

    2022年4月16日
  • pycharm安装tensorflow2.0 过程

    pycharm安装tensorflow2.0 过程pycharm安装tf2.0步骤1.安装python3.7.9官网下载,记住安装python.exe的路径官网地址2.配置环境,设置成上一步安装好的.exe文件3.安装tf相关包,点击添加pandsnumpymatplotlibscikit-learntensorflow2.04.测试安装成功,输入代码importtensorflowastfsess=tf.Session()a=tf.constant(1)b=tf.constant(2)p

    2022年10月30日
  • vs2015注册码[通俗易懂]

    vs2015注册码[通俗易懂]VisualStudioProfessional2015简体中文版(专业版)KEY:HMGNV-WCYXV-X7G9W-YCX63-B98R2VisualStudioEnterprise2015简体中文版(企业版)KEY:HM6NR-QXX7C-DFW2Y-8B82K-WTYJV专业版:HMGNV-WCYXV-X7G9W-YCX63-B98R2企业版:HM6NR-QXX7C-DFW2Y…

    2022年8月22日
  • 3.Android-传感器开发-处理各种传感器配置[通俗易懂]

    3.Android-传感器开发-处理各种传感器配置[通俗易懂] 下载LOFTER客户端Android并没有设定标准的传感器配置,这意味着设备制造商可能会把所有要装入设备的传感器配置都放进Android平台的设备中。这样,设备就可能包括了各种传感器的大量配置信息。比如,MotorolaXoom带有压力传感器,而SamsungNexusS就没有。同理,Xoom和N

    2022年9月29日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号