不允许在Fetch请求上使用方法DELETE-CORS



我以前在另一个请求中遇到过这个问题,但它只是自行修复了。现在我在删除请求时遇到了同样的问题,但是什么都不起作用。我试过设置"mode:coss",我试过允许所有源主机名,甚至特定主机名。似乎什么都不管用。

控制台错误:控制台日志错误屏幕截图

我的模块中的Fetch:

async function deleteProject(_id: string) {
try {
const response = await fetch(urlDelete + _id, {
method: 'DELETE',
headers: {
Accept: 'application/json',
'auth-token': token as string,
}
});
if (!response.ok) {
throw new Error(`Error! status: ${response.status}`);
}
const result = (await response.json()) as GetProjectResponse;
// @ts-expect-error: Unreachable code error
state.Project = result;
return result;
} catch (error) {
if (error instanceof Error) {
console.log('error message: ', error.message);
return error.message;
} else {
console.log('unexpected error: ', error);
return 'An unexpected error occurred';
}
}
} 

我的后端路线:

router.delete("/delete/:id", verifyToken, (req, res) => {
const id = req.params.id;
project.findByIdAndDelete(id)
.then(data => {
if (!data) {
res.status(404).send({ message: "Cannot delete project with id: " + id});
} else {
res.send({ message: "Project was deleted."})
}
})
.catch(err => { res.status(500).send({ message: "Error deleting project with id: " + id }); })
});

您可以尝试在浏览器中的开发工具中执行代码。这基本上将有助于更好地理解这个问题。在这种情况下,我更喜欢使用Firefox,它可以让你对问题有更明确的理解。我还注意到,在谷歌Chrome开发工具中不可能执行CORS请求,而在Firefox 中可以执行相同的代码

好的,所以我检查了我的后端,在几次合并后,我丢失了一些头,所以我必须特别声明cors的所有选项。感谢大家的投入。

最新更新