javascript - 位置 0 Angular2 的 JSON 中的 SyntaxError unexpected token u

标签 javascript angularjs json angular

我试图用一些虚拟数据制作一个服务器。

这是我的 System.js 配置(因为我的路由略有不同,到目前为止这似乎工作正常)

System.config({

            // baseURL to node_modules
            baseURL: '/plugins/dashboard/assets/@@version@@/node_modules',
            defaultJSExtensions: true
        });
        System.import('/plugins/dashboard/assets/@@version@@/app/main')
                .then(null, console.error.bind(console));

这是我的服务:

import {Injectable}     from 'angular2/core';
import {Http, Response} from 'angular2/http';
//import {Observable }     from 'rxjs/Observable';
import {Observable} from 'rxjs/Rx';

import {newsLetter} from "../objects/newsLetter";


@Injectable()

export class newsLetterService {
constructor (private http: Http) {}

//Need to change this URL
private _myNewsLetterUrl = "http://epub-core.dev.prisma-it.com:8888/plugins/dashboard/assets/@@version@@/app/data/newsLetter.json";  // URL to web api

getNewsLetter () {
    console.log(this._myNewsLetterUrl);
    console.log(this.http.get(this._myNewsLetterUrl));
    return this.http.get(this._myNewsLetterUrl)
        .map(res => <newsLetter[]> res.json().data)
        // eyeball objects as json objects in the console | mapping purposes
        .do(data => console.log(JSON.parse(JSON.stringify(data))))
            .catch(this.handleError);

  }

  private handleError (error: Response) {
    // in a real world app, we may send the error to some remote logging infrastructure
    // instead of just logging it to the console
    console.error(error);
    return Observable.throw(error.json().error || 'Server error');
  }
}

但是,如果我将控制台日志更改为 console.log(data),它将返回未定义。

我到处寻找,但没有一个答案能解决我的问题。这可能是系统 js 的问题,但由于其他一切似乎都正常,我真的找不到解决方法。

这是控制台中的响应:

控制台响应:

enter image description here

最佳答案

JSON.stringify(undefined) 导致无效的 JSON,这就是 JSON.parse(JSON.stringify(data)) 抛出的原因。

您可以将代码更改为

JSON.parse(JSON.stringify(data || null ))

关于javascript - 位置 0 Angular2 的 JSON 中的 SyntaxError unexpected token u,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37114968/

相关文章:

javascript - 错误 : Buffer. write(string, encoding, offset[, length]) 不再被支持

javascript - 如何从八 (8) 个 4 位整数创建 32 位整数?

javascript - 当我将 instagram API 与 angularjs 一起使用时,CORS 错误

android - Retrofit2:上传带有一些表单数据的图像-Android

javascript - 并行执行多个 AJAX 请求,并在所有请求完成后运行一个函数

javascript - 了解放置 `await` 关键字的位置

javascript - 在全局样式组件中使用 ThemeProvider Prop

javascript - Angular Material md-menu 无法读取 null 的属性 'setAttribute'

css - 如何在 angular-schema-form 模式而不是表单中设置表单元素的样式?

javascript - 在单击按钮之前, Highcharts 显示为空