【问题标题】:what's wrong with this angular 2 service implementation?这个 Angular 2 服务实现有什么问题?
【发布时间】:2017-03-20 07:34:36
【问题描述】:

以下 Angular2 JobService 实现返回错误:

job.service.ts:26 发生错误响应 {_body: Object, status: 404, ok: false, statusText: "Not Found", headers: Headers...}

服务中定义的jobsUrl 变量在直接通过浏览器地址栏提交时返回一个作业结果的json结果。知道可能是什么问题吗?

import { Injectable }    from '@angular/core';
import { Headers, Http } from '@angular/http';

import 'rxjs/add/operator/toPromise';

import { JobsResult } from './jobs-result';

@Injectable()
export class JobService {

  private headers = new Headers({'Content-Type': 'application/json'});
  private jobsUrl = 'http://service.dice.com/api/rest/jobsearch/v1/simple.json?text=javascript';
  //private jobsUrl = 'app/jobs';  // URL to web api

  constructor(private http: Http) { }

  getJobs(): Promise<JobsResult>{
    return this.http.get(this.jobsUrl)  
               .toPromise()
               .then(response => response.json().data as JobsResult)
               .catch(this.handleError);      
  }

  private handleError(error: any): Promise<any> {
    console.error('getJobs() not working');
    console.error('An error occurred', error); // for demo purposes only
    return Promise.reject(error.message || error);
  }
}

【问题讨论】:

  • 你能在plnkr.co 之类的地方给出你的问题的真实演示吗?
  • 角度发送什么标头?我注意到您实际上并没有在请求中设置标头。

标签: javascript angular


【解决方案1】:

数据未定义,响应没有数据作为键

.then(response => response.json() as JobsResult)

而不是

.then(response => response.json().data as JobsResult)

【讨论】:

    猜你喜欢
    • 2021-10-17
    • 2011-09-28
    • 2011-12-14
    • 2017-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-27
    相关资源
    最近更新 更多