Javascript 使用axios添加访问控制源标头
我正在尝试使用此代码发送post数据Javascript 使用axios添加访问控制源标头,javascript,post,axios,cors,liveserver,Javascript,Post,Axios,Cors,Liveserver,我正在尝试使用此代码发送post数据 axios .post( data.submissionUrl, { data: sendData }, { headers: { "Access-Control-Allow-Origin": "*" } } ) .then((response) => { console.log(response); }) .catch((err) => { console.log(err, err
axios
.post(
data.submissionUrl,
{ data: sendData },
{ headers: { "Access-Control-Allow-Origin": "*" } }
)
.then((response) => {
console.log(response);
})
.catch((err) => {
console.log(err, err.response);
});
我得到了这个错误
Access to XMLHttpRequest at 'https://website' from origin 'vscode live server' has been blocked by CORS policy: Request header field access-control-allow-origin is not allowed by Access-Control-Allow-Headers in preflight response.
但是,我不知道如果我交换数据和头的位置,是出于什么原因,头与数据连接,帖子通过,但数据不正确<代码>数据:“{”头“:{”访问控制允许源“您不能这样做。您需要在服务器响应中添加该头。
- 我认为您在浏览器上使用了axios,因为如果您将其与nodejs一起使用,那么cors不会有任何问题。我建议您通过nodejs从服务器上执行此操作,您可以通过http请求为您的服务器获取数据
因此,我必须在服务器中添加该标题(我试图在那里发布数据?)是的,大多数服务器框架都有一些中间件来实现这一点。例如,对于express:您也可以使用代理。这是摆脱cors的常见方法。如果您使用nginx为前端应用程序提供服务,您可以设置反向代理以将“/api”重定向到网站。您的应用程序和/api将位于同一主机上,因此浏览器不会关心cors。