【发布时间】:2018-01-18 02:41:42
【问题描述】:
我是 JavaScript 世界的新手,一直在努力将 AJAX 请求从 Angular 发送到后端 Node.js Express 应用程序。我的 TypeScript 文件中的 POST 请求如下所示,带有 JSON 正文:
this.httpClient.post(url, createdOrUpdatedBlog, {headers: {'Content-Type': 'application/json; charset=utf-8'}})
.subscribe(res => {
this.router.navigate(['/admin/blogs/list']);
},
error => console.log(error));
在我的 Node 应用程序中,我有一些简单的中间件来处理 CORS。
app.use((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', 'Origin, X-Requested-With, Content-Type, Accept');
res.header('Access-Control-Allow-Credentials', true);
if(req.method === 'OPTIONS') {
res.send(200);
} else {
next();
}
});
我可以看到 OPTIONS 请求并返回 OK 响应。我也可以看到 POST,但它总是空的(没有标题或内容),我不知道为什么。
我可能遗漏了一些非常明显的东西。任何帮助将不胜感激。
【问题讨论】:
-
服务似乎挂起并且没有返回响应。这可能是您对 API 的快速配置的问题。
-
我可以毫无问题地使用 Postman 发出请求,因此看起来 API 配置正确。有效载荷肯定不是空的。
-
你能分享你的快速 API 代码吗?
标签: node.js ajax angular http cors