【发布时间】:2021-07-23 17:31:19
【问题描述】:
这是我在 StackOverflow 上花费数小时梳理类似问题的问题,但似乎无法找到明确的答案。
详情如下:
- 我正在使用 Axios,在 React 中连接到 Wufoo 以发布新表单 提交;
- Wufoo 的文档非常糟糕,但需要 基本身份验证;
- 当我尝试提交我的帖子时(来自
localhost 或通过它构建的 AWS 实例),我得到一个错误
回复:
xxx has been blocked by CORS policy: Request header field authorization is not allowed by Access-Control-Allow-Headers in preflight response.
这是我的代码,我显然错误地设置了身份验证方面,但我终其一生都无法弄清楚问题所在。
有人有什么想法吗?
const wufooSubdomain = 'imgforms';
const formId = 'abcdefg';
const formAuth = `Basic xxxxxxxxxxxxxxxx==`;
const postURL = `https://${wufooSubdomain}.wufoo.com/api/v3/forms/${formId}/entries.json`;
axios({
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
Authorization: formAuth,
},
method: 'post',
url: postURL,
data: formData,
}).then((result) => {
console.warn('1) result is ', result);
});
【问题讨论】:
-
API 文档 wufoo.github.io/docs 没有表明该 API 旨在用于在浏览器中运行的前端 JavaScript。文档中有使用 curl 以及在 PHP、Ruby 和 Node.js 环境中发出请求的示例,但没有类似的从浏览器中运行的前端代码发出请求的示例。这表明 API 故意不启用 CORS。因此,您的选择是将请求处理移至后端服务器端代码,或者为您的前端代码设置某种 CORS 代理以使请求通过。
-
@sideshowbarker:谢谢。这与我可悲地得出的结论相同。我已经通过电子邮件向他们澄清,但与此同时,我该写一个代理了..