[请教]Vue3+Vite 跨域问题,自己找不出原因

2022-08-26 01:43:51 +08:00
 Zhouisme

在学 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 请求出跨域问题,这样配置跨域第一种方法可以正常解决。

3027 次点击
所在节点    程序员
24 条回复
Zhouisme
2022-08-26 12:59:38 +08:00
@zhuweiyou 是的,调试的时候出现过 CORS 问题,也有 400 问题,知道 400 是 bad request,但不知道如何解决。添加 header 就行。
Zhouisme
2022-08-26 13:01:13 +08:00
@lisongeee 可以解决问题。受教了。出现 400 的确不是跨域问题,只是当事一并出现,误以为如此。
LancerComet
2022-08-26 14:20:21 +08:00
嗨呀,那个 400 就不是跨域问题,跨域的话你连 400 的返回都是拿不到的
Zhouisme
2022-08-26 21:57:26 +08:00
@LancerComet 欧吼,我晓得了 :)

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/875475

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX