Http 如何在电子邮件中发送新请求

Http 如何在电子邮件中发送新请求,http,request,angular7,http-get,Http,Request,Angular7,Http Get,我是新来的,所以请理解。 有没有人能帮我找出get请求的问题。 问题是我只从rest后端检索一次数据数组。或者它只是像那样工作。init请求获取空数组什么是正确的(服务器没有记录),但在该请求之后,我将在后端放置一些记录,并且在套接字事件操作之后,由于angular,我将再次获取该数据。即使在后端更改了数据,请求-响应也与以前相同,使用空数组。我已经厌倦了尝试更改/设置诸如Expired、Cache Control等标题,尝试使用promise或observable来获取这些内容 我没有看到任何

我是新来的,所以请理解。 有没有人能帮我找出get请求的问题。 问题是我只从rest后端检索一次数据数组。或者它只是像那样工作。init请求获取空数组什么是正确的(服务器没有记录),但在该请求之后,我将在后端放置一些记录,并且在套接字事件操作之后,由于angular,我将再次获取该数据。即使在后端更改了数据,请求-响应也与以前相同,使用空数组。我已经厌倦了尝试更改/设置诸如Expired、Cache Control等标题,尝试使用promise或observable来获取这些内容

我没有看到任何缓存方法用于此

如果我在浏览器中打开另一个选项卡并键入相同的url,那么我将使用数组中的一条记录获取正确的数据

有没有人遇到过类似的问题?我发现只有在谷歌如何发送只有一个请求;但那不是我需要的

我还尝试使用页面上的按钮触发该操作,该按钮具有相同的rest url和其他正确的url,结果如下所示: -获取的数据,在控制台日志中呈现,在浏览器网络中有请求和响应 -几秒钟后,我点击了按钮,数据在console.log中呈现,但在网络选项卡中并没有请求和响应。所以对我来说,angular似乎只发送一个请求,然后不知何故te响应在缓存中。但正如我提到的,我没有使用缓存

有什么想法吗

import { Injectable } from '@angular/core';
import { HttpClient, HttpHeaders } from '@angular/common/http';

@Injectable({
  providedIn: 'root'
})
export class ExtApiService {

  baseUrl: string = 'https://exampledomain.dev/public/inventory?id=testid';

  constructor(private httpClient: HttpClient) { }

  public getDonations() {

    const httpOptions = {
      headers: new HttpHeaders({
        'Content-Type':  'application/json',
        'Cache-Control': 'no-store',
        'Expires': '0'
      })
    };

    return this.httpClient.get(this.baseUrl, httpOptions);

  }
}
当我输入错误的url时,我得到的唯一正确的响应,那么每个带有响应的请求都可以在网络选项卡中看到

我想知道如何强制执行任何请求

哦,我没有提到在刷新angular页面之后,从后端添加了记录

此外,我忘了与您分享行动(但我认为这是明确的,没有什么可以改变):

更新

我在以下目录下找到缓存请求:
this.httpClient.handler.chain.interceptor.transferState.store
也有类似的属性:
this.httpClient.handler.chain.interceptor.isCacheActive=true

我不能将该属性设置为false,因为z处理程序是私有的,我不能从代码中更改它

之后,我找到了主题:

但是更改标题没有帮助。有谁更熟悉拦截器和缓存请求吗

向索引添加元标题后更新2:

由页面上的按钮触发的请求工作正常,响应值正确(在网络选项卡中生成可见的新请求),但组件中的this.httpClient在被ngOnChange()之类的代码触碰时仍返回缓存响应


知道我还可以尝试什么吗?

看起来我在添加html内容后开始一个接一个地获得正确的请求:

<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="0" />

我不明白为什么在发送请求时httpOptions无法使用,但最重要的是,它现在正在工作


我希望该主题能帮助有同样问题的人。

在添加html内容后,我似乎开始一个接一个地收到正确的请求:

<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="0" />

我不明白为什么在发送请求时httpOptions无法使用,但最重要的是,它现在正在工作


我希望这个主题能帮助有同样问题的人。

我开始用iCacheActive进行研究,我得到了以下页面:


之后,我开始检查代码,我注意到只有GET才激活了缓存,所以我将请求从GET更改为POST,现在看起来它开始工作了。

我开始研究isCacheActive,我得到了该页面:


之后,我开始检查代码,我注意到只有GET才激活了缓存,所以我将请求从GET更改为POST,现在看起来它开始工作了。

您是否手动调用
getData
方法?getData是由页面上的html按钮触发的?您是否手动调用
getData
方法?getData由页面上的html按钮触发