PUT请求返回400,出现以下错误: “ CORS策略:在请求的资源上不存在'Access-Control-Allow-Origin'标头。” 在此之前发出的OPTIONS请求将返回正确的带有200的Access-Control-Allow-Origin标头。
在此工作之前进行的GET请求就可以了,没有任何问题。
我正在使用Axios发出请求。
我在服务器上使用ExpressJS,并且能够从同一台服务器执行GET请求,但是由于某种原因,PUT请求返回了400错误。 这是之前发送的选项,在这里您可以看到我的服务器返回了“ Access-Control-Allow-Origin”标头: OPTIONS
这是在OPTIONS之后发出的PUT请求: PUT
Cors设置:
origin: (origin, callback) => {
if (allowedOrigins.indexOf(origin) !== -1) {
callback(null, true);
} else {
callback(new Error('Not allowed by CORS'));
}
},
method: ['GET', 'PUT', 'POST', 'DELETE', 'UPDATE', 'OPTIONS', 'PATCH'],
allowedHeaders: ['Authorization', 'Origin', 'OK', 'X-Requested-With', 'Content-Type', 'Accept'],
}));
Axios请求:
axios({
url: `https://www.example.com`,
method: 'PUT',
headers: {
'Authorization': `Bearer JWT`,
'Content-Type': 'application/json',
},
}).then((response) => {
console.log(response);
});
在没有“ CORS策略:请求的资源上不存在'Access-Control-Allow-Origin'标头的情况下,PUT请求应该可以正常通过。”显示的错误。