vue跨域问题

本文介绍了一种在开发环境中解决跨域问题的方法。通过修改config文件夹下的index.js文件,并使用简单的jQuery AJAX请求来实现。文章提供了具体步骤及示例代码。

开发环境解决跨域问题

简单粗暴


文件在这里

config文件夹下index.js,记得改完之后重新run一下 (npm run dev)


请求的ajax这样写,我用的最low的jq来写的,你们就用你们的请求方式就行,开发环境的url就写成上面的‘/api/order/evaluate’


指浏览器不允许当前页面的所在的源去请求另一个源的数据,源指协议、端口、名,只要这3个中有一个不同就是,如协议(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问题有以下解决办法: ### 本地开发问题 - 配置 devServer 打开根目录的 `vue.config.js`(没有则创建,vue以前的版本有的是写在 `config/index.js`,有的写在 `webpack.config.js`,4x 版本统一在 `vue.config.js`),写入: ```javascript module.exports = { devServer: { host: 'localhost', port: 8080, https: false, open: false, proxy: { '/apiDev': { target: 'http://api.zmxy.com', changeOrigin: true, pathRewrite: { '^/apiDev': '' } } } } } ``` 之后使用 `npm run serve` 重新编译项目,以 `apiDev` 开头的 URL 就会自动转发到 `api.zmxy.com`。axios 使用示例如下: ```javascript this.axios.get('/apiDev/index/index/getDetail', { params: { id: id } }) ``` 另一种配置示例如下: ```javascript devServer: { proxy: { '/api': { target: 'http://localhost:8080/', changeOrigin: true, pathRewrite: { '/api': '' } } } } ``` 还有旧版本的配置方式,打开 `config/index.js`,在 `proxyTable` 中添写如下代码: ```javascript proxyTable: { '/api': { target: '填写请求源地址', changeOrigin: true, pathRewrite: { '^/api': '' } } } ``` ### Nginx 重定向转发防止 编辑 Nginx 配置文件: ```nginx location /api { rewrite ^.+api/?(.*)$ /$1 break; include uwsgi_params; proxy_pass https://www.api.zmxy.com; } ``` 重启 Nginx,axios 使用示例如下: ```javascript this.axios.get('/api/index/index/getDetail', { params: { id: id } }) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值