2016-05-09 4 views
6

Я попытался создать сервер с некоторыми фиктивными данными.SyntaxError неожиданный токен u в JSON в позиции 0 Angular2

Вот мой System.js Config (так как у меня немного другой маршрут, это, казалось, отлично работает до сих пор)

System.config({ 

      // baseURL to node_modules 
      baseURL: '/plugins/dashboard/assets/@@[email protected]@/node_modules', 
      defaultJSExtensions: true 
     }); 
     System.import('/plugins/dashboard/assets/@@[email protected]@/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/@@[email protected]@/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

+0

проверки ответа на вкладке браузера сети .. вы получаете неправильный или JSON не-а-должного результата, как вы закодированный для – Rakeschand

+0

Вы были правы. Мой JSON недействителен. спасибо за ответ, хотя! –

ответ

15

JSON.stringify(undefined) приводит к недопустимой JSON, поэтому JSON.parse(JSON.stringify(data)) броски.

Вы можете изменить свой код

JSON.parse(JSON.stringify(data || null)) 
Смежные вопросы