Вопрос:

Angular 2 SyntaxError: неожиданный токен <в JSON в позиции 0 в JSON.parse (<аноним>)

angular typescript asp.net-web-api

12134 просмотра

2 ответа

47 Репутация автора

Я вызываю веб-API из службы Angular2 Component в Visual Studio, но постоянно получаю сообщение об ошибке «Неожиданный токен <в JSON в позиции 0 в JSON.parse ()».

ComponentService:

       import { Injectable } from '@angular/core';
       import {Http, Response } from '@angular/http';
       import { IData } from '../Common/details';
       import { Observable } from 'rxjs/Observable';
       import 'rxjs/add/operator/map';

       @Injectable()  
       export class AniversaryService {
         constructor(private _http:Http) { }
         getImages(): Observable<IData[]> {
                return this._http.get("/api/ImageService/Details")
                .map((response: Response) => <IData[]>response.json()      
                };
        }

и соответствующий компонент:

    import { Component, OnInit } from '@angular/core';
    import { DomSanitizer } from '@angular/platform-browser';
    import { IData } from '../Common/details';
    import { AniversaryService } from './Aniversary.service';

    @Component({
    selector: 'my-AniversaryComponent',
    providers: [AniversaryService]
    })

    export class AniversaryComponent implements OnInit {
       data: IData[];
       constructor(private _aniversaryservice: AniversaryService) { }
       ngOnInit() {
       this._aniversaryservice.getImages().subscribe((details) => this.data 
       =details); 
       }
     }

    }

Это образы сетевых заголовков и мой ответ (ответ в Javascript):

В инструменте разработчика изображение заголовков сети:

и мой ответ в Javascript

Иногда мой код состояния показывает 200 ok и тип содержимого (в заголовках ответа): application / javascript

Пожалуйста, помогите мне решить эту проблему.

Спасибо за помощь в продвижении

Автор: Bhargav Источник Размещён: 08.11.2017 10:14

Ответы (2)


1 плюс

43630 Репутация автора

Заголовки не полезны, данные будут. Но сообщение об ошибке ясно: то, что вы думаете, должно быть JSON, начинается с «<» в качестве первого символа, а JSON никогда не начинается с «<». Скорее всего, вы получаете либо HTML, либо XML.

Автор: gnasher729 Размещён: 08.11.2017 11:09

0 плюса

47 Репутация автора

-Я воссоздал свой компонент службы

import { Injectable } from '@angular/core';
import { HttpClient, HttpErrorResponse } from '@angular/common/http';
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/observable/throw';
import 'rxjs/add/operator/catch';
import 'rxjs/add/operator/do';
import { IDetails } from '../share/Details';

    @Injectable()
    export class AniversaryService {
        private url = 'http://localhost:60975/api/ImageService';
        constructor(private _http: HttpClient) { }
        getDetails(): Observable<IDetails[]> {
            return this._http.get<IDetails[]>(this.url)
                .do(data => console.log(JSON.stringify(data)))
                .catch(this.handleError);
        }
        private handleError(err: HttpErrorResponse) {
            console.log(err.message);
            return Observable.throw(err.message);
        }
    }

Теперь он принимает данные без каких-либо ошибок.

Автор: Bhargav Размещён: 10.11.2017 05:30
Вопросы из категории :
32x32