gpt4 book ai didi

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

转载 作者:数据小太阳 更新时间:2023-10-29 05:14:56 25 4
gpt4 key购买 nike

我在 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();
}
}

在运行应用程序时,我可以看到我的 Dashboard 组件显示在屏幕上。但是从 CourseDetailsS​​ervice 中,没有触发任何 http 调用。

但在控制台中我可以看到打印出以下内容:

came here in service
done . . . .

但是在我的 chrome 网络选项卡中,我无法看到任何向指定 url 发出的请求。我哪里出错了?

我正在使用 Angular 2 Alpha 47

最佳答案

基本上触发请求的部分是 subscribe,因此要使其正常工作,您必须添加它。

// Service
load() {
var headers = new Headers();
headers.append('Authorization', <my username password>);

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

// Component
// 'subscribe' triggers the request!
service.load().subscribe((result) => /* do something with result */);

关于javascript - 如何在 Angular 2 中触发 ajax 请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34104221/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com