如何从 Nodejs 获取数据到 Angular 6?
Posted
技术标签:
【中文标题】如何从 Nodejs 获取数据到 Angular 6?【英文标题】:How to get data from Nodejs to angular 6? 【发布时间】:2019-01-12 11:38:48 【问题描述】:我正在使用 http.get 从 nodejs 获取数据到 angular。我想在页面加载时加载一些内容。所以,我只是在初始化方法中调用它。
_initialize(): void
this.http.get('http://127.0.0.1:3000/query/getId').subscribe(
data =>
console.log("success");
,
err =>
console.log("Error occured."+JSON.stringify(err));
);
在我的服务器js中,
app.get('/query/getId',function(req,res)
console.log("hi there");
)
我想传递数据,但目前控制台消息本身没有显示在节点中。在浏览器中,我可以看到发生了消息错误。 message":"url 解析过程中的 Http 失败"。有人能告诉我如何处理吗?
【问题讨论】:
那是因为 Angular 期望从你的服务器获取 JSON,但目前它没有。如果你修改你的服务器以发回一些基本的 JSON(即使只是像res.send('')
这样的空对象),那么这个错误应该会消失
仍然收到相同的错误消息":"解析 url 期间 Http 失败" @user184994
如果您在浏览器开发者工具 (F12) 中检查并检查请求的网络选项卡,您能看到返回的响应吗?
状态码是 200 并且响应选项卡“您的浏览器不支持 javascript”@user184994
【参考方案1】:
添加节点功能:
res.json("hi there");
【讨论】:
仍然出现类似“消息”的错误:“解析 url 期间的 Http 失败”【参考方案2】:您可以使用 responseType
指定要返回的数据不是 JSON
。见Requesting non JSON data
在您的示例中,您应该能够使用:
this.http.post('http://127.0.0.1:3000/query/getId',, responseType: 'text')
【讨论】:
我只想要 json 响应。但是在返回 json 数据后,我也得到了同样的错误,比如 "message":"Http failure during parsing for the url" 。 好的,在这种情况下将标头设置为应用程序 json 并检查您的网络选项卡正在发送和接收的内容 在网络选项卡中。我得到状态码 200。但我仍然面临同样的错误。 你在使用 Angular 6 和 httpclient 吗?【参考方案3】:尝试以下使用 JSON 数据的方法:
app.get('/query/getId',function(req,res)
res.setHeader('Content-Type', 'application/json');
res.send(JSON.stringify( a: 1 ));
);
【讨论】:
以上是关于如何从 Nodejs 获取数据到 Angular 6?的主要内容,如果未能解决你的问题,请参考以下文章
从 mongoDB 获取数据并使用 Angular 和 NodeJs 在屏幕上打印
如何将数据从 AngularJS 前端传递到 Nodejs 后端?
Angular 2 + NodeJS + Mongoose - 从 Angular 2 发布数据到 rest api nodejs 后端。节点 api 日志:选项 /url,POST 标头不起作用