在学 Vue,遇到跨域问题,希望大家帮忙解决,看看问题出在哪里?
post query 请求地址: https://manga.bilibili.com/twirp/comic.v1.Comic/Banner?device=pc&platform=web 在 vite.config.js 中配置如下。
server: { proxy: { '/api': { target: 'https://manga.bilibili.com', changeOrigin: true, // 允许跨域 rewrite: (path) => path.replace(/^\/api/, ''), } } } 在 xx.vue 中代码
axios.post('/api/twirp/comic.v1.Comic/Banner', {}, { params: { device: 'pc', platform: 'web', } }).then((res) => { console.log('res: ', res) }) 报错如下: 这里是 400
xhr.js:220 POST http://127.0.0.1:5173/api/twirp/comic.v1.Comic/Banner?device=pc&platform=web 400 (Bad Request) 127.0.0.1/:1 Uncaught (in promise) AxiosError{message: 'Request failed with status code 400', name: 'AxiosError', code: 'ERR_BAD_REQUEST', config: {…}, request: XMLHttpRequest,…} (没办法这么试了下) 如果axios.post('/api/twirp/comic.v1.Comic/Banner', {}, {改为axios.post('/twirp/comic.v1.Comic/Banner', {}, { 就是 404 (Not Found)
请大佬瞧瞧,困扰了我两三个小时了,别的地址的 get 请求出跨域问题,这样配置跨域第一种方法可以正常解决。
