下面我在瀏覽器中得到一個JavaScript錯誤代碼:角2的Http未捕獲的SyntaxError:意外的標記<
Uncaught SyntaxError: Unexpected token <
如果我從image.service.ts
刪除constructor(private _http:Http) { }
,不會再出現錯誤。
我錯誤地使用http
嗎?我將如何去做一個http
服務,它只是返回json?
App.compontent.js
:
import {Component, OnInit} from 'angular2/core';
import {Image} from './image';
import {ImageDetailComponent} from './image-detail.component';
import {ImageService} from './image.service';
@Component({
selector: 'my-app',
directives: [ImageDetailComponent],
providers: [ImageService],
template: `
<h1>{{title}}</h1>
<h2>Choose your security image</h2>
<button (click)="getImageData()">Get Image Data!</button>
<ul class="images">
<li *ngFor="#image of images"
(click)="onSelect(image)">
<img class="image-responsive" src="{{image.imageurl}}">
</li>
</ul>
<my-image-detail [image]="selectedImage"></my-image-detail>
`
})
export class AppComponent implements OnInit{
title = 'Authenticate';
images: Image[];
selectedImage: Image;
constructor(private _imageService: ImageService) { }
getImages() {
this._imageService.getImages().then(images => this.images = images);
}
ngOnInit() {
this.getImages();
}
onSelect(image: Image) { this.selectedImage = image; }
}
image.service.js
:
import {Image} from './image';
import {Injectable} from 'angular2/core';
import {Http} from 'angular2/http';
@Injectable()
export class ImageService {
constructor(private _http:Http) { }
items: Array<Image>;
getImageData() {
this._http.get('http://localhost/pincode/api/src/1.0/get/images.php')
.map(res => res.json())
.subscribe(
data => this.items = data,
err => this.logError(err),
() => console.log('Got Images')
);
return this.items;
}
logError(err) {
console.error('There was an error: ' + err);
}
getImages() {
return Promise.resolve(this.getImageData());
}
}
能否請您搜索。有幾十個這樣的問題。 –
最常見的原因是:你的api發送一些HTML錯誤頁面。 – Sirko
查看瀏覽器網絡面板中的內容。有可能你的服務器返回一些html而不是有效的js源碼。 (html5應用程序的常見問題) –