2017-10-14 9 views
0

J'ai du mal à diagnostiquer ce bug alors j'espère que quelqu'un peut me diriger dans la bonne direction.Angular 4 page est rafraîchissante sur mobile et dans Safari

Dans une application Angular 4, j'appelle http.get à l'API YouTube Data. Tout fonctionne très bien avec Chrome. Cependant, dans Safari, une actualisation est en cours. L'URL obtient brièvement un "?" en annexe (par exemple http://localhost:4444/youtubetest devient http://localhost:4444/youtubetest?). L'exécution s'arrête à l'appel http.get et les actualisations de page/application. Montioring avec Charles Proxy montre que la réponse (200) est: Client fermé connexion avant de recevoir la réponse entière

Aucune erreur n'apparaît et l'actualisation de la page arrive rapidement Je peux reprocher le problème dans Safari.

Avant l'appel tombe en panne, je fais un appel à l'API de recherche YouTube qui fonctionne très bien: https://www.googleapis.com/youtube/v3/search

Quelle serait la cause de ce genre de comportement? Ce n'est pas l'appel http qui est vraiment le problème parce que je peux l'exécuter seul (curl) et cela fonctionne. Il semble y avoir quelque chose qui se passe avec toutes les autres pièces, mais plutôt que d'afficher tout le code, je me demande ce qu'il faut essayer pour diagnostiquer le problème.

Voici le code qui exécute l'appel HTTP:

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'); 
      }); 

Répondre

1

Comme prévu, il n'a pas été l'appel http, il a été la boîte de dialogue Matériel angulaire d'hébergement sur le bouton qui a fait l'appel. Sauf si vous ajoutez type="button", Angular supposera que vous essayez de soumettre un formulaire et que cela provoque l'actualisation de la page.

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