当代理设置为true时,Nuxt代理将POST更改为GET

时间:2019-08-20 00:22:05

标签: proxy axios nuxt

在我的通用nuxt应用程序中,我已将proxy设置为true并重新写了我的URL以避免CORS问题。 但是,当我将proxy设置为true时,我所有的发帖请求都会更改为获取请求。不明白为什么以及如何将其配置为不具有此转换。

这是我的nuxt.config.js:

 /*
  ** Axios module configuration
  */
  axios: {
    proxy: true
  },
  proxy: {
    '/apicore/': { target: 'http://blablabla.fr', pathRewrite: { '^/apicore/': '' }, changeOrigin: true }
  }

我的电话:

  async createJoueur({ state, dispatch, commit }, data) {
    const URL = '/apicore/joueur'
    await this.$axios
      .post(
        URL,
        data, {
          headers: {
            'Content-Type': 'application/json'
          }
        }
      )
      .then((response) => {
          console.log('JOUEUR LOGGED : ')
          if (response.status === 200) {
          } else {
            console.log('Login failed / Not found')
          }
        }
      )
      .catch((error) => {
        console.log('ERROR')
      })

将此代理设置为true时,我的发帖将变为获得一个。 我是否忘记了配置中的某些内容?

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

我也遇到同样的问题!我使用changeOrigin解决了:否。

我知道它必须是默认值(Look at changeOrigin session),

但是在nuxtjs代理实现中,该值默认为true(Look at Options session)。

答案 1 :(得分:0)

我遇到了同样的问题,在使用 onProxyReq option 进行了一些日志记录后,我发现问题出在 Cloudflare 代理上,而不是 nuxt 代理上。 Cloudflare 将 HTTPS 请求转发到 HTTP,这 forces 个 POST 请求变成了 GET 请求,这在 301/302 重定向中很常见。

据我所知,无法将 Cloudflare 配置为进行 308 重定向,这不会改变 HTTP 方法/正文。