Dar*_*ord 1 post xmlhttprequest node.js cors
var enableCORS = function(req, res, next) {
res.header('Access-Control-Allow-Origin', '*');
res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE,OPTIONS');
res.header('Access-Control-Allow-Headers', 'Content-Type, Authorization, Content-Length, X-Requested-With');
// intercept OPTIONS method
if ('OPTIONS' == req.method) {
res.send(200);
}
else {
next();
}
};
app.use(enableCORS);
Run Code Online (Sandbox Code Playgroud)
我发现在服务器端使用以下代码片段,但当我尝试 POST 时,仍然收到错误:请求的资源上不存在“Access-Control-Allow-Origin”标头。
我只使用以下行:
res.header("Access-Control-Allow-Origin", "*");
Run Code Online (Sandbox Code Playgroud)
它有效。在发送标题之前您是否有可能打印其他内容?标头必须先于其他内容发送。中间件代码应该优先于其他任何内容。
您确定代码正在执行吗?执行一些“console.log”打印以确保正在enableCORS调用。
最后,使用 chrome 开发者工具(或任何等效工具)查看从服务器返回的标头。对于 chrome,请转到网络 => 有问题的请求 => 标头 => 响应标头,并确保 CORS 标头存在。
更新 尝试使用以下内容(摘自此处):
res.header('Access-Control-Allow-Origin', '*');
res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE'); # OPTIONS removed
res.header('Access-Control-Allow-Headers', 'Content-Type');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1627 次 |
| 最近记录: |