您好:我让我的脚湿与平均堆栈。所以我使用Angular连接到api.js文件,该文件与我的mongodb数据库连接。不过,我收到以下错误:这是在错误中引用如何解决:意外标记<在JSON在位置0
ERROR SyntaxError: Unexpected token < in JSON at position 0
at JSON.parse (<anonymous>)
at Response.Body.json (http.es5.js:800)
at MapSubscriber.project (post.service.ts:19)
at MapSubscriber._next (map.js:77)
at MapSubscriber.Subscriber.next (Subscriber.js:89)
at XMLHttpRequest.onLoad (http.es5.js:1229)
at ZoneDelegate.invokeTask (zone.js:424)
at Object.onInvokeTask (core.es5.js:4140)
at ZoneDelegate.invokeTask (zone.js:423)
at Zone.runTask (zone.js:191)
post.service.ts文件如下:
import { Injectable } from '@angular/core';
import { Http } from '@angular/http';
import 'rxjs/add/operator/map';
@Injectable()
export class PostService {
result: any;
constructor(private _http: Http) { }
getPosts() {
return this._http.get("/api/posts")
.map(result => this.result = result.json());
}
getPost(id) {
return this._http.get("/api/details" + id)
.map(result => this.result = result.json());
}
}
以下是我的api.js文件。即使控制台也不会登录该帖子。
router.get('/details/:id', function(req, res) {
console.log('Requesting post');
post.findById(req.params.id)
.exec(function(err, post) {
if (err) {
console.log('Error getting the post');
} else {
res.json(post);
console.log(post);
}
});
});
我不知道我在哪里错了。我会很感激任何指导。
你在哪里得到这个错误?在Chrome控制台中输入 – Aravind
。然而,当我试图拉出所有帖子时,我没有得到那个错误;只有当我尝试请求单个帖子时 – Nosail
您期望返回JSON的内容实际上是返回HTML,因此将<<作为第一个字符。这可能是托管该API的服务器上的标准错误页面,可能是4xx或可能是5xx。所以服务器上的代码可能会失败,或者路线错误。您将能够通过检查浏览器开发工具中的网络选项卡来查看返回结果。或添加'。做(响应=>的console.log(response.text()))''你.MAP()' –