node.js - React / Typescript:尽管遵循所有常见解决方案,但 Axios 跨域 POST 请求 CORS 错误
问题描述
使用 Axios 发出 POST 请求时,我在 React / Typescript 项目中遇到了 CORS 错误。该应用程序有一个 Node.js / Express 后端。我意识到 CORS 错误有多常见,并且我查看了所有关于该问题的评分最高的帖子,但我似乎无法解决该错误。我正在尝试向第三方 API 发出登录 POST 请求(它们需要登录验证才能执行请求)。现在我在前端的 POST 请求如下所示:
const headers = {
crossDomain: "true",
Accept: "*/*",
Authorization: `Bearer ${localStorage.token}`,
"Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS",
"Access-Control-Allow-Headers": "Origin, Content-Type, Authorization, X-Auth-Token",
"Content-Type": "application/x-www-form-urlencoded",
};
export const useKirbyLogin = async () => {
try {
const response = await axios.post(
"apiURL",
{
jsonData,
},
{
headers: headers,
}
);
console.log(response);
} catch (err) {
console.error(err);
}
};
并非所有这些 Headers 选项都是一次配置的 - 我尝试了各种配置,带有和不带有“Access-Control-Allow-Methods”或“Access-Control-Allow-Headers”的标题(我不认为你是应该将这些用于请求,但我还是尝试了以防万一),与“Content-Type”相同。我也尝试过将“Content-Type”设置为“application/json”。我尝试在配置文件中设置 Axios。这些都没有奏效。我尝试在后端实现相同的功能,但收到 403 错误。在后端启用所有 CORS 请求:
app.use(cors());
这些是我得到的错误:
我不确定发生了什么,所有 CORS 解决方案都说同样的话,但这些解决方案对我不起作用。
编辑:我尝试在服务器上的 CORS 中设置配置,但仍然返回 403 错误:
const corsOptions = {
origin: '*',
credentials: true,
optionSuccessStatus: 200,
};
app.use(cors(corsOptions));
编辑:我已经联系了 API 所有者,因为我仍然无法解决 403 错误/CORS 问题。这个问题可能不是我的问题,还是我的代码中的任何内容看起来不正确?
解决方案
API 提供商回复我并确认这确实是他们的问题。特别是,本地主机似乎有一些问题。我相信他们的 API 目前根本不接受来自本地主机的请求。(临时)解决方案是使用cors-anywhere绕过错误。
export const useKirbyLogin = async () => {
try {
const response = await axios.post(
`https://cors-anywhere.herokuapp.com/${apiURL}`,
{
jsonData,
},
{
headers: headers,
}
);
console.log(response);
} catch (err) {
console.error(err);
}
};
推荐阅读
- javascript - 具有动态角色的基于角色的访问控制
- r - 用于计算维恩图的集合交点的函数
- javascript - 在角度订阅内部/之后延迟
- machine-learning - sklearn linear_kernel 使 cosine_similarities - 内存错误
- solr - 如何在 SolrQuery 中对单个字符串执行 LIKE
- r - 如何通过提供有关列名的条件来创建 DataFrame 的子集
- c# - “在你的 CSPROJ 文件中为 JavaHome 设置一个属性”
- django - 即使与数据匹配,Django 过滤器也会返回空查询集
- python - 用 Python 测试 Parquet
- c - 使用只有一个函数参数的递归的对称树检查算法