代码之家  ›  专栏  ›  技术社区  ›  Alien13

React axios get request to express应用程序在本地运行,但在生产中返回405

  •  0
  • Alien13  · 技术社区  · 5 年前

    在我的React应用程序中,我使用axios向我的后端节点/express应用程序发送请求。在我的本地环境中,当我使用如下函数调用它时,一切都运行良好:

    await axios.post('/createproduct', createProductBody).then(res => console.log('Data send')).catch(err => console.log(err.data))

    然而,在我将代码推向生产环境后,这行代码返回状态代码405(参见屏幕截图)

    可能是因为我添加了 "proxy": "http://localhost:3001" 在我的 package.json 文件我不太明白为什么这在中国会起作用 locally 但不是在 prod .

    谢谢

    enter image description here

    0 回复  |  直到 5 年前
        1
  •  1
  •   8bitjunkie Vikram    5 年前

    根据下面的输出,您的AWS S3存储桶未配置为允许 POST :

    axios = require('axios')
    
    function createProductBody() {
        return {}
    }
    async function stackOverflowQuestionNumber67929785() {
        await axios.post('https://editor.blankt.io/createproduct', createProductBody()).then(res => console.log('Data send')).catch(err => console.log(err))
    }
    
    stackOverflowQuestionNumber67929785();
    

    印刷品:

    response: {
        status: 405,
        statusText: 'Method Not Allowed',
        headers: {
          'content-type': 'application/xml',
          'transfer-encoding': 'chunked',
          connection: 'close',
          allow: 'HEAD, DELETE, GET, PUT',
          date: 'Fri, 11 Jun 2021 00:58:55 GMT',
          server: 'AmazonS3',
          'x-cache': 'Error from cloudfront',
          via: '1.1 cf2a58a1ade01b9796df7d87fe311e64.cloudfront.net (CloudFront)'
        }
    
    

    看到了吗 allow 响应标题。