Angular 4页面在手机和Safari中令人耳目一新

问题描述:

我很难诊断这个错误,所以我希望有人能指引我朝着正确的方向前进。Angular 4页面在手机和Safari中令人耳目一新

在Angular 4应用程序中,我正在对YouTube数据API进行http.get调用 - 它在Chrome中一切正常。但是,在Safari中,刷新正在发生。该URL简要地获得“?” (例如,http://localhost:4444/youtubetest变成http://localhost:4444/youtubetest?)。执行停止在http.get调用并刷新页面/应用程序。与Charles Proxy一起进行的监控显示,响应(200)是:在收到整个响应之前客户端已关闭连接

没有错误出现,并且页面刷新很快发生我可以在Safari中重新编写问题。

失败了,我正在打电话到YouTube搜索API工作正常通话之前:https://www.googleapis.com/youtube/v3/search

什么会导致这样的行为?这不是http调用的问题,因为我可以自己运行它(卷曲)并且它可以工作。似乎有所有其他部分正在发生,但不是发布所有代码,我想知道下一步要尝试什么来诊断问题。

下面是执行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'); 
      }); 

正如预期的那样,它不是HTTP调用,它是托管进行呼叫的按钮角材料对话框。除非您添加type="button",否则Angular会假设您正在尝试提交表单并导致页面刷新。

请参阅:https://github.com/angular/material2/issues/2599