Javascript 如何在Angular 2中触发ajax请求?

Javascript 如何在Angular 2中触发ajax请求?,javascript,angular,Javascript,Angular,我在Angular 2中定义了如下服务: import { Inject } from 'angular2/angular2'; import { Http ,Headers , HTTP_PROVIDERS } from 'angular2/http'; export interface CourseInterface { courseId: number, coursePrice: number, authorName: string } export class

我在Angular 2中定义了如下服务:

import { Inject } from 'angular2/angular2';
import { Http ,Headers , HTTP_PROVIDERS } from 'angular2/http';

export interface CourseInterface {
    courseId: number,
    coursePrice: number,
    authorName: string
}

export class CourseDetailsService {
    http: Http;
    constructor(@Inject(Http) Http) {
        console.log(Http)
        this.http = Http;
    }

    load() {
        console.log("came here in service")
        var headers = new Headers();
        headers.append('Authorization', <my username password>);

        this.http.get('https://some.api',{
            headers : headers
        }).map(res => console.log("Response came!!!"))

        console.log("done . . .")
    }
}
import {CourseInterface, CourseDetailsService} from '../services/course';

@Component({
    selector: 'dashboard',
    viewBindings: [CourseDetailsService]
})
@View({
    template: `
        <h1>Dashboard page laoded</h1>
  `
})
export class Dashboard {
    constructor(service: CourseDetailsService) {
        service.load();
    }
}
但在我的chrome网络选项卡中,我无法看到任何发送到指定url的请求。我在哪里犯错


我正在使用Angular 2 Alpha 47,基本上是触发请求本身的部分,它是订阅,所以要使它工作,你必须添加它

//服务
加载(){
var headers=新的headers();
headers.append('Authorization',);
返回此.http.get('https://some.api',{
标题:标题
}).map(res=>console.log(“响应来了!!!”)
}
//组成部分
//“订阅”触发请求!
service.load().subscribe((result)=>/*使用result*/)执行某些操作;

触发请求的部分是
订阅
。所以请
返回这个.http.get().map()
,然后在您的组件中执行
service.load().subscribe((结果)=>…)
@EricMartinez:那么它基本上返回一个
可观察的
?我需要订阅并获取我的流吗?@Ants你说得对D@EricMartinez:谢谢,我对这个感到困惑。你可以给出答案,我可以接受。:完全不可能。如果说我有一系列独特的请求,比如
/something
/other
,在这些情况下,我如何返回可观察的对象,以便消费者能够捕获它们?我的方法是创建单独的方法,如:
loadSomething
loadOther
,其中第一个案例将请求
https://some.api/something
。其余部分看起来像答案:
service.loadSomething().subscribe(…)
。这对您有意义吗?另一种方法是:向
load()
添加一个参数,比如
load(query){返回http.get(query).subscribe(…)}
。这种方法比上面的方法好。谢谢,我也在考虑同样的方法。这种方法可以进行同步调用吗?例如,我需要服务器验证访问页面的用户权限,我希望此调用是同步的,并且不添加*ngIf以在调用结束之前不显示视图,如果我可以使用http服务,我不希望发出普通的ajax请求
came here in service
done . . . .