Javascript 使用axios添加访问控制源标头

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

我正在尝试使用此代码发送post数据

  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请求为您的服务器获取数据
  • 创建一个脚本,通过nodejs从服务器发送数据
  • 创建您的浏览器脚本,向服务器发送请求以获取此数据。如果您在网站中使用此脚本,效果会更好

  • 因此,我必须在服务器中添加该标题(我试图在那里发布数据?)是的,大多数服务器框架都有一些中间件来实现这一点。例如,对于express:您也可以使用代理。这是摆脱cors的常见方法。如果您使用nginx为前端应用程序提供服务,您可以设置反向代理以将“/api”重定向到网站。您的应用程序和/api将位于同一主机上,因此浏览器不会关心cors。