NextJS API未发布到外部域



我有一个简单的NextJS应用程序在Vercel中运行。我克隆了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站点中不会发布数据,但我会在浏览器中获得状态:ok消息。

我对这个很陌生?somoene能引导我了解我所缺少的东西吗?

您还没有将函数标记为async,所以我不认为它在等待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是多填充的。

最新更新