jhon papaのサンプル(クイックスタートプログラム)のサンプルアプリケーションを作成しました。 iはhttp://localhost:8081//Myserver/rest/herosAngular2 restはバックグラウンドで呼び出します
import { Injectable } from '@angular/core';
import { Http, Response , Headers} from '@angular/http';
import 'rxjs/add/operator/toPromise';
import { Hero } from './hero';
import { Code } from './code';
import { HEROES } from './mock-heroes';
@Injectable()
export class HeroService {
constructor(private http: Http) { }
private heroesUrl = 'http://localhost:8081//Myserver/rest/heros'; // URL to web api
getHeroes() {
return this.http.get(this.heroesUrl)
.toPromise()
.then(
response => response.json() as Hero[])
.catch(this.handleError);
}
getHero(id: number) {
return this.getHeroes()
.then(heroes => heroes.find(hero => hero.id === id));
}
private handleError(error: any) {
console.error('An error occurred', error);
return Promise.reject(error.message || error);
}
}
サービスクラスが正常に動作していると英雄は(ただここで問題をorgin CROS忘れる)にもUIにリストされている私のRESTサービスからJSONデータを取得するためにサービスクラスを設計しました。しかし、私がここで気づいたのは、http://localhost:8081//Myserver/rest/herosのブラウザから直接送信されたものです(開発者ツールのネットワークタブで見ることができます)。
私のアプリケーションによれば、ブラウザから送信すべきではなく、JSFのバックエンドBeanクラスのように処理し、関連するコンポーネントにデータを提供する必要があります。私はこれもCROS orginの問題を解決すると信じています。用量Angular2にはそのようなオプションがありますか?それを達成するための正しい方法を提案してください。
を参照してください - ウル迅速な対応のおかげでは、plsは私の質問を明確に。 –
- 他のすべてのコンポーネントもWebWorkerで処理されますか? –
私はあまりやったことはありませんが、AFAIK UIスレッドはレンダリングだけを実行し、他のすべてのコードはWebWorkerで実行されます。バインディングデータとイベントは、UIスレッドとWebWorkerスレッド間で渡されます(すべてが完全に透過的です)。 –