Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无数据响应从iTunes api获取数据-角度_Javascript_Angular_Typescript_Http - Fatal编程技术网

Javascript 无数据响应从iTunes api获取数据-角度

Javascript 无数据响应从iTunes api获取数据-角度,javascript,angular,typescript,http,Javascript,Angular,Typescript,Http,在我的Angular应用程序中,api返回的数据中没有响应?下面的代码,有什么想法吗?我得到的结果计数为0,什么时候应该是50 proxy.conf.json { "api": { "target": "https://itunes.apple.com/search?term=drake", "secure": true, "changeOrigin": true } } 服务.ts import { Injectable } from '@

在我的Angular应用程序中,api返回的数据中没有响应?下面的代码,有什么想法吗?我得到的结果计数为0,什么时候应该是50

proxy.conf.json

{
    "api": {
      "target": "https://itunes.apple.com/search?term=drake",
      "secure": true,
      "changeOrigin": true
    }
}
服务.ts

import { Injectable } from '@angular/core';
import { HttpClient, HttpEventType, HttpHeaders, HttpRequest, HttpResponse, HttpErrorResponse } from '@angular/common/http';
import { Observable, of, throwError } from 'rxjs';
import { catchError, retry } from 'rxjs/operators';


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

  api: string = 'api';

  constructor(
    private http: HttpClient,
  ) { }

  getAll(): Observable<any> {
    return this.http.get<any>(this.api)
      .pipe(
        catchError(this.handleError)
      );
  }
  private handleError(error: HttpErrorResponse) {
    if (error.error instanceof ErrorEvent) {
      console.log(error.error.message)

    } else {
      console.log(error.status)
    }
    return throwError(
      console.log('Something is wrong!'));
  };
}
import { Component, OnInit } from '@angular/core';
import { HttpClient, HttpEventType, HttpHeaders, HttpRequest, HttpResponse } from '@angular/common/http';
import { ApiService } from '../../../services/api.service';


@Component({
  selector: 'app-content',
  templateUrl: './content.component.html',
  styleUrls: ['./content.component.scss']
})
export class ContentComponent implements OnInit {

  public results = [];
  public data = [];


  constructor(private service: ApiService) { }
  private http: HttpClient
  ngOnInit() {
    this.getApi();
  }


  private getApi() {
    this.service.getAll().subscribe((results) => {
      console.log('JSON Response = ', JSON.stringify(results));
      this.data = results.results;
    })
  }
}
JSON api结构

{ 
   "resultCount":50,
   "results":[ 
      { 
         "wrapperType":"track",
         "kind":"song",
         "artistId":271256
      },
   ]
}

尝试将实际的API端点插入到http调用中,看看是否得到任何结果。从外观上看,您正在尝试执行对“api”的HTTP请求,我怀疑这是否可行。我知道你有一个代理设置,但也许这就是你的问题所在。这也不意味着你在做任何有结果的事情。您正在捕获eorr,但没有其他内容。问题是,如果我将api设置为'api:string=''';'它向我提供了从源“”访问“”处XMLHttpRequest的CORS issueAccess已被CORS策略阻止:请求的资源上不存在“Access Control Allow origin”标头。代理不会修复此问题。他们正在阻止这一切。你可能必须向他们注册你的应用程序,这样你的url就会被列入白名单。我假设他们给了你某种类型的API密钥。@大多数情况下,CORS错误表明API是要从服务器上命中的,客户端不允许。