当前位置: 首页 > 知识库问答 >
问题:

Angular2 HTTP请求失败

韩经武
2023-03-14

这是我的第一个问题。我对API上的http请求有问题。当我发出请求时,控制台上会显示以下错误:

异常:找不到不同类型'对象'的支持对象'[对象对象]'。NgFor仅支持绑定到Iterable,如Array。

每个文件的内容如下:

靴子ts

import {bootstrap} from 'angular2/platform/browser';
import {AppComponent} from "./app.component";
import {HTTP_PROVIDERS} from "angular2/http";

bootstrap(AppComponent,[HTTP_PROVIDERS]);

应用程序。组成部分ts

import {Component} from 'angular2/core';
import {HTTPTestService} from "./services/peli.service";
import {Peli} from "./peli";

@Component({
    selector: 'my-app',
    template: `
        <h1>Búsqueda de película</h1>
        <input #titulo placeholder="Buscar...">
        <button class="btn btn-success"     (click)="infoPeli(titulo.value)">Buscar</button>
        <div *ngFor="#peli of pelis">
        <h1>{{peli.Title}}</h1>
        <p>{{peli.Year}}</p>
        </div>
    `,
    providers: [HTTPTestService]
})

export class AppComponent {

pelis:Peli[];

    constructor (private _httpService: HTTPTestService) {}

    infoPeli(nombre:string) {
        this._httpService.buscarPeli(nombre)
            .subscribe(
                data => this.pelis = data,
                error => alert(error),
                () => console.log(this.pelis)
            );
    }
}

peli.service.ts

import {Injectable} from "angular2/core";
import {Http} from "angular2/http";
import 'rxjs/add/operator/map';

@Injectable()
export class HTTPTestService {
    constructor(private _http:Http) {
    }

    buscarPeli(nombre:string) {
        return this._http.get('http://www.omdbapi.com/?    t='+nombre+'&y=&plot=short&r=json').map(res => res.json());
    }
}

peli.ts

export class Peli{
    Title:string;
    Year:string;
}

以及我从请求中收到的JSON文件(输入-蜘蛛侠):

{"Title":"Spiderman","Year":"1990","Rated":"N/A","Released":"N/A","Runtime":"5 min","Genre":"Short","Director":"Christian Davi","Writer":"N/A","Actors":"N/A","Plot":"N/A","Language":"German","Country":"Switzerland","Awards":"N/A","Poster":"N/A","Metascore":"N/A","imdbRating":"5.7","imdbVotes":"90","imdbID":"tt0100669","Type":"movie","Response":"True"}

我不知道问题出在哪里,一切似乎都很好...

提前感谢!!

共有1个答案

谢典
2023-03-14

您有一个

.subscribe(
                data => this.pelis = data,

你会得到一个

异常:找不到不同类型'对象'的支持对象'[对象对象]'。NgFor仅支持绑定到Iterable,如Array。

由于pelis不是一个数组,因此会出现此错误。

例如:代替

data => this.pelis = data

尝试:

data => this.pelis = [data]

 类似资料:
  • HTTP/1.1 408 REQUEST_TIMEOUT内容-长度:0连接:关闭 已关闭 --------------------------------------------------------------------------------------- 它会导致请求超时。如果我使用curl命令,它是成功的。 请求超时的原因是什么?

  • 类项目: hbm文件: 方法如下:

  • 我正在开发一个脚本,以访问图形API阅读我们的广告中的所有用户。我正在通过以下方式使用AXIOS执行一个请求: 然而,这失败了,因为: client_id=535FB089-9FF3-47B6-9BFB-4F1264799865&scope=https%3a%2f%2fgraph.microsoft.com%2f.default&client_secret=qwgdyamab0yskul1qkv5

  • 我已经部署了我的webservice在OpenShift(Tomcat),每次我请求我的服务时,有时它工作,有时它不工作。 错误是 应用程序不可用应用程序当前未在此endpoint上为请求提供服务。它可能尚未启动或仍在启动。 您看到此页面的可能原因:主机不存在。确保正确键入了主机名,并且存在与此主机名匹配的路由。 主机存在,但没有匹配的路径。检查URL路径是否键入正确,以及路由是否是使用所需路径创

  • 在过去的几天里,我一直在玩弄twitter应用编程接口,但似乎无法请求“请求令牌”。(流程A) 在twitterapi上,我应该达到以下终点(https://api.twitter.com/oauth/request_token)如果请求成功,则应向我提供一个,和)(应与我通过的匹配)。我试图只使用我的私钥,但这当然是失败的。我对如何生成此请求的理解是否错误? 我相信我的问题是如何生成。阅读twi

  • 使用Cookie访问经过身份验证的网页时,出现SSL错误。这似乎是一个mac特定的问题,许多人通过安装python证书来解决(正如我在下图的终端会话中尝试的那样),但是当我尝试安装时,会抛出一个异常()。 我应该如何修复此错误? 代码: 错误消息: 尝试的解决方案: 编辑5/19 附加终端会话(来自建议的解决方案): 编辑5/21 试图在项目中包含SSL,但引发错误。。这似乎是相关的,但是,当检查