Angular 9 HttpErrorResponse 'JSON.Parse error' 响应正常
Angular 9 HttpErrorResponse 'JSON.Parse error' while response is OK
为什么会抛出错误?
deleteUser(userId: string) {
this.dataService.deleteUser(userId).subscribe((response: string) => {
console.log(response);
});
}
"SyntaxError: Unexpected token f in JSON at position 1
at JSON.parse ()
at XMLHttpRequest.onLoad (https://localhost:5001/vendor.js:34968:51)
at ZoneDelegate.invokeTask (https://localhost:5001/polyfills.js:412:35)
at Object.onInvokeTask (https://localhost:5001/vendor.js:72879:33)
at ZoneDelegate.invokeTask (https://localhost:5001/polyfills.js:411:40)
at Zone.runTask (https://localhost:5001/polyfills.js:180:51)
at ZoneTask.invokeTask [as invoke] (https://localhost:5001/polyfills.js:493:38)
at invokeTask (https://localhost:5001/polyfills.js:1634:18)
at XMLHttpRequest.globalZoneAwareCallback (https://localhost:5001/polyfills.js:1671:25)"
响应是纯字符串值,状态为 200。
我错过了什么?
使用正确的 responseType 更新 dataService 中的 deleteUser 方法(JSON 是默认值)。另外,我假设那是您使用 httpClient 的地方。
httpClient.get('your_endpoint', { responseType: 'text' }).subscribe(result => {
console.log(result);
});
您返回的是文本,而不是 JSON。
为什么会抛出错误?
deleteUser(userId: string) {
this.dataService.deleteUser(userId).subscribe((response: string) => {
console.log(response);
});
}
"SyntaxError: Unexpected token f in JSON at position 1 at JSON.parse () at XMLHttpRequest.onLoad (https://localhost:5001/vendor.js:34968:51) at ZoneDelegate.invokeTask (https://localhost:5001/polyfills.js:412:35) at Object.onInvokeTask (https://localhost:5001/vendor.js:72879:33) at ZoneDelegate.invokeTask (https://localhost:5001/polyfills.js:411:40) at Zone.runTask (https://localhost:5001/polyfills.js:180:51) at ZoneTask.invokeTask [as invoke] (https://localhost:5001/polyfills.js:493:38) at invokeTask (https://localhost:5001/polyfills.js:1634:18) at XMLHttpRequest.globalZoneAwareCallback (https://localhost:5001/polyfills.js:1671:25)"
响应是纯字符串值,状态为 200。
我错过了什么?
使用正确的 responseType 更新 dataService 中的 deleteUser 方法(JSON 是默认值)。另外,我假设那是您使用 httpClient 的地方。
httpClient.get('your_endpoint', { responseType: 'text' }).subscribe(result => {
console.log(result);
});
您返回的是文本,而不是 JSON。