【问题标题】:How to get data from Nodejs to angular 6?如何从 Nodejs 获取数据到 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

标签: html node.js angular http angular6


【解决方案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 }));
 });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-15
    • 2019-06-29
    • 1970-01-01
    • 2018-12-16
    • 1970-01-01
    • 1970-01-01
    • 2019-11-11
    相关资源
    最近更新 更多