【问题标题】:Send data from ExpressJS to AngularJS ERROR json从 ExpressJS 发送数据到 AngularJS 错误 json
【发布时间】:2016-09-02 18:00:43
【问题描述】:

我想将数据从 Express 发送到 Angular 时遇到问题 我得到错误:

SynatxError: JSON.parse: JSON 数据的第 1 行第 1 列的数据意外结束

文件:controller.client.js

$scope.getData = function() {
        $http.get('http://localhost:3000/getData').then(function(response) {
            alert('good: ');
            console.log(JSON.parse(response));
        }, function(error) {
            alert('Error: ');
            console.log("error: ");
            console.log(error);
        });
    } 

文件:server.controller.js

exports.getData = function(req, res) {
    var data = {
        "name": "kacper",
        "age": 12
    };
    console.log('getData function: ');
    console.log(data);

    res.json(data);
}

文件 server.routes.js

app.get('/getData', index.getData);

我的回答总是错误:

SynatxError: JSON.parse: JSON 数据的第 1 行第 1 列的数据意外结束

如何解决?

【问题讨论】:

  • 没有必要在$http.get成功内使用JSON.parse,它已经是一个格式良好的JSON,参考this answer

标签: javascript angularjs json node.js express


【解决方案1】:

您通过res.json(data)从您的服务器发送您的回复。

res.json() 发送 JSON 响应。当 Angular 得到该响应时,它已经是一个 JSON。您无需再次解析它。按原样使用。

阅读更多:http://expressjs.com/en/4x/api.html#res.json

【讨论】:

  • 在控制台中我从服务器获取了这个数据:“错误:home.client.controller.js:69:13 Object { data: null, status: -1, headers: headersGetter/
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-08-14
  • 1970-01-01
  • 2016-10-25
  • 2012-05-18
  • 2018-01-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多