Post 服务未从 Angular 前端更新值,但它在邮递员中工作

Post service is not updating value from Angular front, but it's working in postman

这是我在 Postman 中执行的请求,它工作正常,它只是发送一个显示值(字符串)“true”/“false”来启用或禁用选项卡,然后我将 get 请求签入到获取所有选项卡并查看它是否更改了选项卡的值。

问题在 Angular,我正在发送值并收到 200OK 响应,没有错误,但是当我检查邮递员获取请求时,我在禁用或启用的选项卡中没有任何变化前面

/**
   * get active tabs
   */
  public getAvailableTabs() {
    return (this.http.get<SiwaTabs[]>(`${ApiProvidersService.CurrentPath()}/Siwa/Settings/SiwaTabs`
    ).map(tabs => tabs.map(t => new SiwaTabs(
      t.id,
      t.title,
      t.route,
      t.UserID,
      t.display
    ))));
  }

  /**
   * set SiwaTabs
   * @param display
   * @param tabsID
   */
  public changeSiwaTabs(display: string, tabsID: number) {
    console.log(display, tabsID)
    return (this.http.post<any>(`${ApiProvidersService.CurrentPath()}/Siwa/Settings/changeSiwaTabs`, {
        display: display,
        tabsID: tabsID
      }
    ).map
    (result => result));
  }

这里是订阅服务的ts文件

 /**
   * onInit
   * set initial theme
   * */
  ngOnInit() {
    this.getAvailableTabs();
    this.openSetting = "none";
    this.ReadOnlyStyleGuideNotes = true;
    this.Design = this.UserThemes.getTheme(this.User.activeUser.ThemeID);
    this.User.setTheme(this.User.activeUser.ThemeID);
    this.selectLang(this.User.activeUser.LanguageValue);
    this.selectedTabsID(this.Tabs);
    this.spinner = new Spinner();
    this.timedMessage = new TimedMessage();
    let id: number = 2
    let display: string = "true"
    this.User.changeSiwaTabs(display, id).subscribe((res) => {
      console.log(display, id);
      console.log(res.status);
      if (res.status === true) {
        this.timedMessage.show(
          "Die Tabs wurden erfolgreich geändert",
          "alert-success",
          2000
        );
      }
    });
  }

这是网络浏览器的响应:

我哪里做错了?

我认为在changeSiwaTabs函数中,JSON.stringifymap运算符没有用。

它是一个 POST api 所以,有效载荷是一个 JSON 对象。您不需要对该有效负载进行字符串化。 map 运算符不应该存在,因为在 ngOnInit 中它已被订阅。

public changeSiwaTabs(display: string, tabsID: nubmer) {
    ...
    return this.http.post<any>(..., request);

在 get 方法中你想要布尔值,你得到了字符串。我说得对吗?

这是 Access-Control-Allow-Origin header

的后端问题