可行
网页直接访问,数据正常返回
在地址栏输入 https://api.binance.com/api/v3/ticker/price?symbol=BTCUSDT
返回数据正确
不使用反向代理,直接用axios可以得到数据
import axios from 'axios';
async function getBTCPrice() {
try {
const response = await axios.get('https://api.binance.com/api/v3/ticker/price', {
params: { symbol: 'BTCUSDT' }
});
console.log('当前 BTC 价格:', response);
} catch (error) {
console.error('获取价格时出错:', error);
}
}
const test = ()=> {
getBTCPrice()
}
test是某个按钮的返回函数
postman测试也正常
不行
vite反向代理出问题
case1
- vite.config.js
'/binance':{
target: 'https://api.binance.com',
changeOrigin: true,
rewrite: (path) => path.replace(/^\/binance/, '')
},
- 测试的vue文件中
import axios from 'axios';
async function getBTCPrice() {
try {
//这里注释掉的是可以的(axios直接发送请求+没有用vite代理)
// const response = await axios.get('https://api.binance.com/api/v3/ticker/price', {
// params: { symbol: 'BTCUSDT' }
// });
const response = await axios.get('/binance/api/v3/ticker/price', {
params: { symbol: 'BTCUSDT' }
});
console.log('当前 BTC 价格:', response);
} catch (error) {
console.error('获取价格时出错:', error);
}
}
const test = ()=> {
getBTCPrice()
}
- 浏览器中报错
- vs code控制台报错
命令行测试
CMD执行: curl -k http://localhost:5173/binance/api/v3/ticker/price?symbol=BTCUSDT
空白 + vs code控制台报错
nginx中也出错
但是和vite中略有不同,vite是500,nginx是404
最终解决
去香港后,用学校的网访问成功了,估计是IP问题