2017-10-14 5 views
0

Ich habe eine schwere Zeit, diesen Fehler zu diagnostizieren, also hoffe ich, dass jemand mich in die richtige Richtung zeigen kann.Angular 4 Seite ist erfrischend auf Handy und in Safari

In einer Angular 4-App mache ich einen http.get-Aufruf an die YouTube-Daten-API - in Chrome funktioniert alles einwandfrei. In Safari wird jedoch eine Aktualisierung durchgeführt. Die URL erhält kurz ein "?" angehängt (z. B. http://localhost:4444/youtubetest wird http://localhost:4444/youtubetest?). Die Ausführung wird beim Aufruf von http.get angehalten und die Seite/App wird aktualisiert. Montioring mit Charles Proxy zeigt, dass die Antwort (200) ist: Client Verbindung vor dem Empfang der gesamten Antwort geschlossen

Kein Fehler erscheint und die Seite aktualisieren geschieht schnell Ich kann das Problem in Safari repro.

Vor dem Anruf, den ich mache einen Aufruf an die YouTube-Suche-API, die gut funktioniert nicht: https://www.googleapis.com/youtube/v3/search diese Art von Verhalten

Was würde verursachen? Es ist nicht der http-Aufruf, der wirklich das Problem ist, weil ich es alleine ausführen kann (curl) und es funktioniert. Es scheint etwas mit all den anderen Stücken los zu sein, aber anstatt den ganzen Code zu posten, frage ich mich, was ich als nächstes versuchen sollte, um das Problem zu diagnostizieren.

Hier ist der Code ist, der den HTTP-Aufruf ausführt:

url: 'https://www.googleapis.com/youtube/v3/videos', 
     idKey: 'videoId', 
     method: 'GET', 
     ... 

     return this.http.get(this.url, options) 
      .map(response => response.json()) 
      .catch(this.handleError) 
      .do(res => { 
      // This does not run... 
      console.log('returned video details'); 
      }); 

Antwort

1

Wie erwartet, ist es nicht der HTTP-Aufruf war, war es der scharfkantige Material Dialog auf die Schaltfläche Hosting, den callte. Sofern Sie nicht type="button" hinzufügen, wird Angular davon ausgehen, dass Sie ein Formular senden und die Aktualisierung der Seite verursachen.

Siehe: https://github.com/angular/material2/issues/2599