Node.js 已在节点/express中启用CORS,但正在获取;对飞行前请求的响应不';t通过访问控制检查”;
我得到一个错误: 加载失败:对飞行前请求的响应未通过访问控制检查:请求的资源上不存在“访问控制允许来源”标头。因此,不允许访问源“” 在前端,我使用的是axios:Node.js 已在节点/express中启用CORS,但正在获取;对飞行前请求的响应不';t通过访问控制检查”;,node.js,http,express,cors,axios,Node.js,Http,Express,Cors,Axios,我得到一个错误: 加载失败:对飞行前请求的响应未通过访问控制检查:请求的资源上不存在“访问控制允许来源”标头。因此,不允许访问源“” 在前端,我使用的是axios: const instance = axios.create({ baseURL: 'http://localhost:3000', timeout: 1000, headers: {"Access-Control-Allow-Origin": "*"} }); instance.post('/users/registe
const instance = axios.create({
baseURL: 'http://localhost:3000',
timeout: 1000,
headers: {"Access-Control-Allow-Origin": "*"}
});
instance.post('/users/register').then((res) => {
console.log(res);
}).catch((err) => {
console.log(err);
});
在服务器端使用express时,我使用的是cors:
var cors = require('cors');
var corsOptions = {
origin: '*',
optionsSuccessStatus: 200
}
app.use(cors(corsOptions));
我得到的响应代码是200,我确实看到了“Access Control Allow Origin”标题,但在服务器端没有得到任何信息。有什么想法吗?您很可能还需要明确启用对
选项的支持请求(即“CORS飞行前”)。有关如何执行此操作的详细信息,请参阅
对于您的具体情况,我想补充以下内容:
app.options('/users/register', cors(corsOptions));
或者,如果要为所有请求启用它:
app.options('*', cors(corsOptions));
您很可能还需要显式启用对选项
请求的支持(即“CORS飞行前”)。有关如何执行此操作的详细信息,请参阅
对于您的具体情况,我想补充以下内容:
app.options('/users/register', cors(corsOptions));
或者,如果要为所有请求启用它:
app.options('*', cors(corsOptions));
只有您的服务器需要设置头,它不应该出现在http客户端请求中(在您的示例中是axios)。所以不要从axios发送:头:{“访问控制允许源”:“*”}
。您看到返回的服务器头了吗?在浏览器中的“网络”选项卡上,或使用curl-v-xpost检查它http://localhost:3000/users/register
在终端中。只有服务器需要设置标头,它不应出现在http客户端请求中(在您的axios中)。所以不要从axios发送:头:{“访问控制允许源”:“*”}
。您看到返回的服务器头了吗?在浏览器中的“网络”选项卡上,或使用curl-v-xpost检查它http://localhost:3000/users/register
在终端中。