gpt4 book ai didi

javascript - 语法错误: Unexpected token # in JSON at position 0

转载 作者:行者123 更新时间:2023-12-03 03:06:48 26 4
gpt4 key购买 nike

我有一个将搜索词发送到 Node 的表单。在请求 header 中,我确实将内容类型设置为 json,但仍然收到此错误。我不知道我做错了什么。 Node js新手。我使用 Angular 4 作为前端:

这是我的搜索表单组件代码:

  onSearch(){
console.log('the sent term is: ', this.searchForm.value.term)
this._auth.searchTweets(this.searchForm.value.term)
.subscribe(
(res) => {
console.log(res)
}
)
}

这是我的服务代码,它将术语发送到 Node 后端:

  searchTweets(term){
console.log('from auth search: ', term)
let headers = new Headers();
headers.append('Content-Type', 'application/json');
return this.http.post('http://localhost:4000/users/profile',term, {headers:headers})
.map(res => res.json());
}

我的 Node 端代码是:

router.post('/profile',(req,res,next) => {
console.log('the backend term: ',req.body.term)
})

在开发工具的网络选项卡中我得到的是 html 而不是 json?我在这里缺少什么?

我尝试在 Node 端记录资源:

SyntaxError: Unexpected token # in JSON at position 0
at Object.parse (native)
at createStrictSyntaxError (C:\xampp\htdocs\angssrtest\node_modules\body-parser\lib\types\json.js:157:10)
at parse (C:\xampp\htdocs\angssrtest\node_modules\body-parser\lib\types\json.js:83:15)
at C:\xampp\htdocs\angssrtest\node_modules\body-parser\lib\read.js:121:18
at invokeCallback (C:\xampp\htdocs\angssrtest\node_modules\raw-body\index.js:224:16)
at done (C:\xampp\htdocs\angssrtest\node_modules\raw-body\index.js:213:7)
at IncomingMessage.onEnd (C:\xampp\htdocs\angssrtest\node_modules\raw-body\index.js:273:7)
at ZoneDelegate.invokeTask (C:\xampp\htdocs\angssrtest\node_modules\zone.js\dist\zone-node.js:425:31)
at Zone.runTask (C:\xampp\htdocs\angssrtest\node_modules\zone.js\dist\zone-node.js:192:47)
at ZoneTask.invokeTask (C:\xampp\htdocs\angssrtest\node_modules\zone.js\dist\zone-node.js:499:34)
at IncomingMessage.ZoneTask.invoke (C:\xampp\htdocs\angssrtest\node_modules\zone.js\dist\zone-node.js:488:48)
at emitNone (events.js:86:13)
at IncomingMessage.emit (events.js:185:7)
at endReadableNT (_stream_readable.js:974:12)
at ZoneDelegate.invokeTask (C:\xampp\htdocs\angssrtest\node_modules\zone.js\dist\zone-node.js:425:31)
at Zone.runTask (C:\xampp\htdocs\angssrtest\node_modules\zone.js\dist\zone-node.js:192:47)

顺便说一句,我已经找到了这条有效的路线。所以我不明白为什么在帖子中我遇到这个问题

最佳答案

错误是因为您正在接收 html 文件,res.json() 无法解析 HTML 文件。确保 Node 中存在适当的路由并且您正在发送正确的响应。

我注意到您正在访问的端点是 http://localhost:4000/users/profile您正在收听的是“/profile”。用户在 route 丢失。我假设你有一个/* 监听器,它返回一个 html 文件,这就是你得到的响应。

searchTweets(term) {
console.log('from auth search: ', term)
let headers = new Headers();
headers.append('Content-Type', 'application/json');
return this.http.post('http://localhost:4000/users/profile',term,
{headers:headers})
.map(res => res.json());
}

并且路由监听器不会发送任何响应作为返回。

router.post('/profile',(req,res,next) => {
console.log('the backend term: ',req.body.term)
})

关于javascript - 语法错误: Unexpected token # in JSON at position 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47131101/

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