node.js - NextJS API 未发布到外部域

标签 node.js reactjs next.js vercel

我有一个在 Vercel 中运行的简单 NextJS 应用程序。我克隆了 Vercel 提供的 NextJS 模板,并仅添加了一个名为 jira.js 的文件

当此 jira 被命中时,我只是尝试将随机数据发布到外部 API。

Jira.js 如下

    // Next.js API route support: https://nextjs.org/docs/api-routes/introduction
    process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0';
    
    import axios from 'axios'
    import https from 'https'
    
    export default (req, res) => {
        const headers = {
            'Content-Type': 'application/json',
            'Access-Control-Allow-Origin': '*'
        }
    
        axios.post('https://webhook.site/6db7a14b-48d7-4037-a482-86885526aa40', {
            Name: 'Fred',
            Age: '23'
        }, {
            headers: headers,
            withCredentials: true
        }
        ).then(function(res) {
            console.log({res: res})
        }).catch(function(e) {
            console.log({"failed": e})
        })
        res.json({ status: 'ok' })
    
    }

当我在本地尝试时(localhost:3000/api/jira),数据被发布到 Webhook 站点,但是当我将其部署到 vercel(random-domain. com/api/jira),然后 webhook 站点中没有发布数据,但我在浏览器中收到 Status: ok 消息。

我对此很陌生? somoene 可以指导我解决我所缺少的内容吗?

最佳答案

您尚未将函数标记为异步,因此我不认为它正在等待 JIRA 的响应。例如:


export default async (req, res) => {
  try {
    const response = await fetch(
      `https://webhook.site/6db7a14b-48d7-4037-a482-86885526aa40`,
      {
        body: JSON.stringify({
            Name: 'Fred',
            Age: '23'
        }),
        headers: {
          'Access-Control-Allow-Origin': '*',
          'Content-Type': 'application/json'
        },
        method: 'POST'
      }
    );

    if (response.status >= 400) {
      return res.status(400).json({
        error: 'There was an error'
      });
    }

    return res.status(200).json({ status: 'ok' });
  } catch (error) {
    return res.status(500).json({
      error: 'There was an error'
    });
  }
};

您也不需要 axios - fetch 默认情况下已为您填充。

关于node.js - NextJS API 未发布到外部域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66776573/

相关文章:

node.js - Azure Function 请求中端口 443 上的 EACCESS 错误

reactjs - 如何在 React 中的 onClick 之后测试 next/link (Nextjs) 获取页面重定向?

javascript - Express中路由器划分有什么问题? ( react )

reactjs - 类型错误 : WebAssembly. 实例化():导入 #0 模块 ="env"错误:模块不是对象或函数

node.js - Mongoose 中的 "__v"字段是什么

node.js - MongoError 未知组运算符

javascript - Node 错误 - 在 MakeCallback 中使用域属性已被弃用

reactjs - firebase_compat_app__WEBPACK_IMPORTED_MODULE_0__.default.database 不是函数

javascript - <Link> 不会在 child 中传播

next.js - 从 Sentry 事件中排除 nextjs api url