.NET + Angular-从Fire Fox发出请求时,Chrome中的IIS Server刷新localhost选项卡

时间:2018-10-08 11:22:32

标签: asp.net-mvc angular

这很奇怪。

我有一个从.NET MVC项目提供的角度应用程序。当我向后端发出请求并完成响应时,页面将刷新。这仅在Chrome中发生。

以下是我触发的怪异变化:

1)在Chrome中服务该应用,完成请求,刷新页面。

2)在Chrome中服务该应用程序,将FF打开到localhost(因此在两个浏览器中打开同一页面),在FF中触发请求,请求完成。 FF不会重新启动,但是chrome标签会重新启动。

3)在FF中投放应用,请求不刷新页面。将chrome打开到localhost,从FF或Chrome发送请求,页面刷新。

.NET路由命中仅在文件上传后以JsonResult响应。在完成的请求命中订阅后,这将始终发生。这里是一些相关的代码:

// component
this.myService.uploadFile(formGroup, this.Id).subscribe(result => 
{
  console.log(result);
});

// service
public uploadFile(form: FormGroup, id: number) {
  const options = {
    reportProgress: true,
  };
  const file: File = form.get('file').value;
  const formData = new FormData();
  formData.append('File', file, file.name);
  formData.append('Id', id.toString());

  const request = new HttpRequest('POST', '/file', formData, options);
  return this.http.request(request)
    .pipe<HttpEvent<any>>(
      map((event) => {
      return this.updateProgress(event, form);
     }),
     last()
  );
 }

我在应用程序的其他位置使用了完全相同的格式,用于另一个具有不同要求且没有任何问题的文件上传组件。

我只知道足够的.NET来作危险,而且我主要是SPA开发人员。如果您需要有关.NET配置的更多信息,请询问。我真的很想对此进行追踪。

更新:我发现this GitHub issue仅在chrome中描述了类似事件。我在return false函数的末尾(模板中$event.preventDefault()事件调用的那个)和订阅范围的末尾都添加了upload()(click)

我迷路了。

0 个答案:

没有答案