-1
Je reçois l'exception "Cross-Origin Request Blocked" comme mentionné ci-dessous lors de l'accès au point de terminaison de l'api de repos via le tapuscrit Angular 2. J'essaie d'apprendre angulaire 2, S'il vous plaît aidez-moi à résoudre ce problème.Pourquoi une demande bloquée d'origine croisée avec un type tapé angulaire 2 ..?
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://xxxxxxxxx.com/place/countries. (Reason: CORS header ‘Access-Control-Allow-Origin’ missing).
Ma classe de service est comme ci-dessous: -
import { Injectable } from '@angular/core';
import { Headers, Response, Http } from '@angular/http';
import 'rxjs/add/operator/toPromise';
//import { Observable } from 'rxjs/Rx';
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/operator/map';
import 'rxjs/add/operator/do';
import { HeaderOption } from '../model/header-option.component';
import { Country } from '../model/country.component';
import { BRAND_HEADERS, LEFT_HEADERS, HOME, PROFILE, LOGOUT, LOGIN} from './header-mock';
@Injectable()
export class HeaderService {
private headers = new Headers({'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '*'});
private countriesUrl = 'http://XXXXXXXXXXXXXXX.com/place/countries';
constructor(private http: Http) {}
getCountries(): Observable<Country[]> {
//return this.http.get(this.countriesUrl, {headers: this.headers}).toPromise().then(response => response.json().records as Country[]).catch(this.handleError);
//return this.http.get(this.countriesUrl, this.headers).map((res:Response) => res.json()).catch((error:any) => Observable.throw(error.json().error || 'Server error'));
return this.http.get(this.countriesUrl, this.headers).map((response: Response) => <Country[]> response.json()).do(data => console.log(JSON.stringify(data)));
}
private handleError(error: any): Promise<any> {
console.error('An error occurred', error); // for demo purposes only
return Promise.reject(error.message || error);
}
getBrand():HeaderOption{
return BRAND_HEADERS;
}
getLeftHeader():HeaderOption[]{
return LEFT_HEADERS;
}
getHomeLink():HeaderOption{
return HOME;
}
getProfileLink():HeaderOption{
return PROFILE;
}
getLogoutLink():HeaderOption{
return LOGOUT;
}
getLoginLink():HeaderOption{
return LOGIN;
}
}
son pas le client .. son le serveur bloquant la demande d'origine croisée ... le fixer sur le serveur, c Lient montre seulement l'erreur que le serveur a renvoyé –
pourquoi le serveur le bloquant, quand l'URL du plan est accessible à partir du navigateur. ce qui doit être fait au côté serveur pour l'activer ..? –
'pourquoi le serveur le bloque' parce que c'est ce que CORS est tout sur –