Проблема с маршрутизацией в том, что я использую сервис для вызова данных в формате JSON из REST API. который построен на стороне PHP. И это работает отлично, это возвращает мне что-то вроде этого:
[
{
"id": 1,
"created_by": 1,
"updated_by": 1,
"created_at": 0,
"updated_at": 0,
"active": 1,
"name": "MyCompany",
"currency_id": null,
"logo_img": null,
"phone": null,
"email": null,
"website": null
}
]
Но, пытаясь с помощью стратегии определения местоположения хеша, я получил ответ index.html
вместо данных из сервиса.
Http: // апач: 8080 / MyCompany / бэкенд / веб / # / база / компании
И эта вещь передает мне индекс с ошибкой:
Неожиданный маркер < в JSON в позиции 0
Потому что мой сервис пытается преобразовать данные ответа в формат JSON (если не получен в формате JSON)
boot.ts как следует:
import {bootstrap} from 'angular2/platform/browser';
import {AppComponent} from './app.component';
import { ROUTER_PROVIDERS ,
APP_BASE_HREF ,
LocationStrategy,
HashLocationStrategy
} from 'angular2/router';import { provide } from 'angular2/core';
import { HTTP_PROVIDERS } from 'angular2/http';
bootstrap(AppComponent, [
HTTP_PROVIDERS,
ROUTER_PROVIDERS,
provide(LocationStrategy, {useClass: HashLocationStrategy})
]);
мой метод обслуживания для получения данных:
Здесь базовый URL-адрес указывает на API моего бэкэнда rest, откуда он должен получать ответ.
getData(): Observable<any[]> {
return this.http.get( this.baseUrl + this.ReceivedUrl)
.map(response => response.json())
.catch(this.handleError);
}
И связал это как:
getCompany() {
this.mainService.getData()
.subscribe(
companys => this.companys = JSON.stringify(companys),
error => this.errorMessage = <any>error);
}
Конфигурация маршрута:
@RouteConfig([
{ path: '/login', name: 'Login', component: LoginComponent},
{ path: 'base/res-company', name: 'Company', component: CompanyComponent },
])
ВОПРОС:
Что я делаю не так, что я получаю HTML-страницу, отображаемую вместо данных JSON службы покоя, используя хэш-расположение в URL
Задача ещё не решена.
Других решений пока нет …