Ich habe this gesehen, und ich habe ein paar Fragen.Angular2: Kein 'Access-Control-Allow-Origin'-Header ist auf der angeforderten Ressource vorhanden. Herkunft 'null' ist daher nicht erlaubt
Ich will die Antwort von diesem uri erhalten:
http://www.instagram.com/justinbieber/media/
und ich habe den folgenden Code für sie umgesetzt:
import {Http,Headers} from '@angular/http';
import {Observable} from 'rxjs/Observable';
import 'rxjs/add/operator/map';
import {Component,Injectable} from '@angular/core';
import {Gallery} from './gallery';
@Injectable()
export class InstagramService{
constructor(private _http:Http){
}
getGallery(username: string) : Observable<Gallery> {
return this._http.get("http://www.instagram.com/justinbieber/media/").map(res => res.json());
}
}
Unfortunatlly, wenn ich diesen Service nennen es beschwert sich mit:
XMLHttpRequest cannot load https://www.instagram.com/justinbieber/media/. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access.
So gibt es einige Fragen für mich:
1- Ich kann die Antwort von meinem Browser oder sogar postman bekommen, aber nicht in meinem Code. Was macht dieses Problem?
2 - Falls in meinem Code etwas nicht stimmt, geben Sie bitte Ihren Vorschlag an?
Hinweis: Diese URI unterstützt auch jsonp.get
nicht.
Das Problem ist, dass es kein Problem in Ihrer Angular2 Anwendung. Mit Postman sind die Dinge ein bisschen anders, da es ein Chrome-Plugin ist, so dass die Einschränkungen in Bezug auf HTTP-Aufrufe nicht gleich sind. Um den Fehler, den Sie erhalten, zu beheben, muss auf der Serverseite etwas getan werden, so dass es auf Instagram geht. Die gleichen Dinge für JSONP-Unterstützung. Deshalb habe ich mich mit der Instagram API beschäftigt, die JSONP unterstützt. Hoffe, dass es Ihre Frage beantwortet ;-) –
Vielleicht könnte dieser Artikel Sie interessieren: http://restlet.com/blog/2015/12/15/understanding-and-using-cors/. –
Dieser Artikel auch: http://restlet.com/blog/2016/09/27/how-to-fix-cors-problems/ –