在Vue2中怎么解决跨域

Vue中怎么解决跨域问题

协议域名端口相同为同域 否则都为跨域

这就是需要用跨域来请求数据的报错

在这里插入图片描述

第一步:在vue项目中的跟目录下创建一个 vue.config.js ,文件名是固定的,不一样就会报错

在这里插入图片描述

第二步: 在vue.config.js里边直接复制下面这串代码即可
    devServer: {
        host:'0.0.0.0', //可以忽略不写
        port: 8080,//它是用来修改你打开后的端口号的
        open: true,//值为 true的话,项目启动时自动打开到浏览器里边, false不会打开
        proxy:{
            '/api':{
                target:'http://m.sirfang.com/api',//跨域请求的公共地址
                ws:false, //也可以忽略不写,不写不会影响跨域
                changeOrigin:true, //是否开启跨域,值为 true 就是开启, false 不开启
                pathRewrite:{
                    '^/api':''//注册全局路径, 但是在你请求的时候前面需要加上 /api  
                }
            }
        }
    },

}
第三步:如果你使用的是axios来请求数据的话,需要现在下载 axios ,它分为全局引入和局部引入,全局是在 main.js 里边引

在这里插入图片描述
引入 axios.defaults.baseURL=/api

第四步:在组件中进行请求数据的写法

在这里插入图片描述

### 如何在 Vue 2 中处理请求 #### 使用代理服务器 一种常见的方式是配置开发环境中的代理服务器来解决问题。通过修改 `vue.config.js` 文件可以轻松实现这一点。这种方式适用于开发阶段,在生产环境中通常不采用此方法。 ```javascript module.exports = { devServer: { proxy: 'http://example.com' // 将所有请求转发到目标地址 } } ``` 这种方法能够有效地隐藏真实的API路径,使前后端分离的应用更易于管理和维护[^1]。 #### JSONP 方案 对于只支持GET请求的老式接口,JSONP是一种可行的选择。不过需要注意的是,由于其局限性和安全性考虑,在现代Web应用中较少被推荐使用。为了兼容旧版浏览器或特定场景下的需求,仍然有必要了解这一技术手段。 ```html <script> function handleResponse(data){ console.log('data from server:', data); } // 创建script标签并设置src属性指向远程服务URL var script = document.createElement('script'); script.src = "http://example.com/api?callback=handleResponse"; document.body.appendChild(script); </script> ``` 尽管如此,考虑到安全风险以及功能上的不足之处,建议优先尝试其他替代方案如CORS或者代理方式。 #### CORS 配置 最主流的做法是由后端开启CORS(Cross-Origin Resource Sharing),允许来自指定源的HTTP请求访问资源。这需要服务器端做出相应调整,比如增加响应头字段: - Access-Control-Allow-Origin: * - Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS - Access-Control-Allow-Headers: Content-Type, Authorization 前端无需做特别改动即可正常发起AJAX调用。如果无法控制后台,则需寻找其它变通措施。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值