Web Services 邮政服务不是从Angular 上更新价值,而是在 Postman 身上工作

k5hmc34c  于 2022-11-15  发布在  Angular
关注(0)|答案(3)|浏览(107)

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

问题是在Angular ,我发送的值,也得到了一个200 OK响应没有错误,但当我检查 Postman 得到请求,我没有在我禁用或启用从前面的选项卡更改

/**
   * 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
        );
      }
    });
  }

这是来自Web浏览器的响应:第一次
我能做错什么?

3qpi33ja

3qpi33ja1#

我认为在changeSiwaTabs函数中,JSON.stringifymap运算符是无用的。
它是一个POST API,所以有效负载是一个JSON对象。你不需要字符串化该有效负载。并且不应该有map操作符,因为在ngOnInit中,它是订阅的。

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

6rqinv9w2#

在get方法中,你需要是布尔值而得到的是字符串,对吗?

vfwfrxfs

vfwfrxfs3#

这是Access-Control-Allow-Origin标头的后端问题

相关问题