首页 > 解决方案 > 如何解决 Angular8 中的输入字符串格式不正确?

问题描述

在我的 asp.net core 3.1 中,我有返回 aws 实例类型列表的方法,并且我在 angular 8 项目中使用 api。

当我使用邮递员时,我得到的 json 结果为

[
    "c5n.4xlarge",
    "m2.2xlarge",
    "t3.xlarge",
    "m5dn.8xlarge",
    ..........
]

但是在 chrome 的网络选项卡中,我得到了回复

编号的 json 结果

当我尝试发布(它在后端工作)它抛出错误

输入字符串的格式不正确

我看到它没有获取价值并设置为未定义。如何使 json 结果类似于 postman 结果未编号。不知道这是不是原因。但在响应部分它是正常的 json。也许是多个数组的原因。

PS 还查看了有关输入字符串格式不正确的另一个主题,但它与整数问题有关,但在我的情况下,我只需要字符串

我的服务://这也是opentack的类似方法,效果很好

createAws(model: any, projectId: number, instanceType?: any) {
    return this.http.post(`${this.baseUrl}servers/${projectId}?i 
   instanceType=${instanceType}`, model);
  }

我的组件://

selectInstanceHandler(event: any){
    this.selectedInstance = event.target.value;
  }



createAws(instanceType: any){
    this.subs.add(this.cvmService.createAws(this.model,this.projectId,instanceType).subscribe(
      x => {
        this.model = x;
        this.alertify.success("successfully added new Server");
      },
      error => {
        this.alertify.error("\n" + error);
      }
    ))
  }

我的html:

      <div class="row" *ngIf="type == 'AWS'">
        <div class="col-3 mt-3 labelText">
          <span class="spanText">Aws Instance Type</span>
        </div>
        <div class="col-9">
          <mat-form-field class="example-full-width">
            <mat-label>Please select intance type</mat-label>
            <select matNativeControl required name="awsInstanceType" 
             [(ngModel)]="model.awsInstanceType"
              (change)="selectInstanceHandler($event)">
              <option value="-1" disabled> </option>
              <option *ngFor="let item of aws">
                {{ item }}
              </option>
            </select>
          </mat-form-field>
        </div>
      </div>

邮递员中的示例有效:

{{url}}/api/servers/22?instanceType=r5a.large

标签: c#angularasp.net-core

解决方案


结果没有编号,只是chrome格式化数据的方式,方便阅读。这就是为什么它被称为预览选项卡。

检查响应选项卡,响应只是字符串数组(即未编号)


推荐阅读