我的.php文件包含内容:
test.php的
<?php
echo 'a';
这是我的Angular 2组件。
app.component.ts
import {Component, AfterViewInit, Input, Output, EventEmitter,
ElementRef, ChangeDetectorRef, Injectable } from '@angular/core';
import {Http, Headers, Response, Jsonp} from '@angular/http';
import {JsonData} from './json-data';
import {Observable} from 'rxjs/Rx';
import 'rxjs/Rx';
import 'rxjs/add/operator/map';
@Component({
moduleId: module.id,
selector: 'my-app',
templateUrl: 'app.component.html',
})
export class AppComponent {
public data: any;
public constructor(private http: Http, public element: ElementRef,
private cdRef: ChangeDetectorRef) {
this.element = this.element.nativeElement;
}
public getData() {
this.http.get('http://localhost:3000/test.php').map((response: Response) => response.json())
.subscribe(result => this.data = result);
console.dir(this.data);
}
ngOnInit() {
this.getData();
}
}
我想收到&#39; a&#39;作为回应,但我的回复包含php文件中的所有内容:
<?php
echo 'a';
我能否只得到一个&#39; ?
答案 0 :(得分:0)
首先: Http调用是Angular2中的异步。
因此,拨打电话后您无法console.dir(this.data);
。您需要等待数据从服务器返回。
如果要记录您需要更改订阅的数据。对于多行代码,您可以在“this.data = result
”周围添加大括号:
this.http.get('http://localhost:3000/test.php').map((response: Response) => response.json())
.subscribe(result => {
this.data = result;
console.dir(this.data);
);
第二:如果您的回复返回php文件中的所有内容(“<?php echo 'a';
”),那么您的php服务器没有运行..您是否安装了wamp服务器? (假设你在窗户上。)
希望这会对你有所帮助。