2017-10-27 1 views
0

ich mit kantiger ohne Erfolg eine Nachricht an Firebase Cloud Messaging zu senden versuchen, weil ich folgende Frage Nachricht empfangen wurde:Angular mit Firebase Cloud Messaging - Access-Control-Allow-Origin

Access-Control-Allow-Origin

I eine sehr einfache Post mit kantigem haben als die Firebase Dokumentation sagt: Send Messages | Firebase

sendMessage() { 
    let headers = new Headers(); 
    headers.append('Access-Control-Allow-Origin', '*'); 
    headers.append('Content-Type', 'application/json'); 
    headers.append('Authorization', `key=${environment.firebaseConfig.serverKey}`); 
    const options = new RequestOptions({ 
     headers: headers, 
     withCredentials: true 
    }); 

    const message = { 
     'notification': { 
     'title': 'MESSAGE TEST', 
     'body': 'Its works fine', 
     'click_action': 'https://www.google.com.br' 
     }, 
     "to": this.token 
    } 

    this.$http.post('https://fcm.googleapis.com/fcm/send', JSON.stringify(message), options) 
     .subscribe(m => { 
     console.log(m); 
     }, error => { 
     console.log(error); 
     }) 
} 

ich viele Dinge ausprobiert, aber nicht funktioniert ...

Antwort

0

Es ist nicht einfach in Angular zu beheben, weil Sie versuchen, POST zu einer anderen Domäne. Chrome und andere Browser verweigern diese Anforderungen (Sicherheit). Also müssen Sie CORS-Header auf der Serverseite aktivieren. Aber das ist nicht möglich, weil Sie eine Google API verwenden.

Hier können Sie über CORS lesen und Eckig: https://daveceddia.com/access-control-allow-origin-cors-errors-in-angular/

Eine Lösung diese Benachrichtigungen im Backend Ihrer Anwendung zu senden ist.