首页 > 解决方案 > Angular + NodeJS HTTP 错误:“JSON.parse 中位置 0 处的 JSON 中的意外令牌 <”

问题描述

嗨,任何人都可以帮助解决错误:“JSON.parse 中位置 0 处的 JSON 中的意外令牌 <” - 我已将其范围缩小到以下内容。

服务器端代码:

                var response = [];

                for (let i = 0; i < data.Contents.length; i++) {

                    var fileName = // fetches correct filename from somewhere

                    response.push({
                        fileName: fileName,
                        fileSize: // fetches correct filesize from somewhere
                    })
                }

                res.status(200).json(response);

客户:

    public getFilesFromMeetingId(_meetingId: string) {
        return this.http
            .get<FileModel[]>('http://xxx.xxx.xxx.xxx/api/meeting/' + _meetingId + '/files')
    }

文件模型:

export class FileModel {

    constructor (
        public filename: string,
        public fileSize: number
    ) {}

}

getFilesFromMeeing 代码:

files: FileModel[];
  
  constructor(private fileService: FileService) { }

  ngOnInit(): void {
    this.fileService.getFilesFromMeetingId(this._meetingId)
      .pipe( take(1) )
      .subscribe(
        filesResponseData => {
            this.files = filesResponseData;
        }
  );
  }

奇怪的是我的所有代码都按预期工作,FileModel 获取 HTTP 响应并正确解析它,但我认为我的错误在于服务器如何打包响应以及 JSON 如何在客户端转换为 FileModel 对象?

谢谢你。

标签: node.jsjsonangularhttp

解决方案


推荐阅读