解决vue跨域302,301,404,问题
(仅用于开发环境,上线项目使用nginx配置)
这里简单说一下配置的基本条件
目录
以上三个都没问题了
要么就是修改了配置文件没有重启项目,解决:npm serve/npm dev(根据package.json来跑)
要么就是浏览器缓存没清,解决:ctrl f5(强制清除刷新页面)
报301,再报cors,要么就是接口写错了,如https看成http,也可能是后端问题
报404,再报cors,要么就是参数传错了,或者接口不对
(如果是post请求,可以配置一下请求头header)
-
'Access-Control-Allow-Origin': '*',//是否被允许与给定的origin共享
-
'Access-Control-Allow-Method': '*',//类型,如post,put,get,delete
-
'Access-Control-Allow-Headers': '*',//请求头
-
'Access-Control-Allow-Credentials': 'true',//请求的响应暴露给页面。返回true
-
'Content-Type': 'text/html; charset=utf-8',//编码
一、vue.config.js中配置devServer
-
devServer: {
-
proxy: {
-
'/api': {
-
target: 'https://p.3.cn/',
-
changOrigin: true,//允许跨域
-
// ws: true, // 是否启用websockets
-
secure: false,//默认为true,是否需要携带安全证书,即https时,是需要的,设置成false就不用了
-
pathRewrite: {
-
'^/api': '',//重写路径
-
}
-
}
-
}
-
}
二、使用axios发送请求
我这里使用的是vue3原型绑定axios
(这里的“/api”是进行了重写)
可以理解为:
当前域是:http://localhost:8080/api/prices/mgets?skulds=J_100011464875&type=1
当检测到/api时,会把/api以及之前的正则重写
即变成:https://p.3.cn/prices/mgets?skulds=J_100011464875&type=1
拿到的数据是4900上下浮动的手机价格
-
proxy.$axios.get('/api/prices/mgets', {
-
params: {
-
skuIds: 'J_100011464875',
-
type: 1,
-
}
-
}).then((res: any) => {
-
console.log('跨域数据', res.data)
-
})
三、接口无误
1.京东获取单个商品价格接口:
1.//ps:商品ID这么获取:http://item.jd.com/954086.html(xxx.html的xxx就是商品的id)
2.http://p.3.cn/prices/mgets?skuIds=J_商品ID&type=1
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgbfeie
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01