【发布时间】:2019-03-22 18:24:30
【问题描述】:
我正在尝试从 json 响应中读取字符串,但出现错误:
SyntaxError: JSON 中的意外标记 c 在位置
我有一个控制器,它从数据库返回一个 guid 作为字符串
[HttpPost("TransactionOrderId/{id}")]
public async Task<string> TransactionOrderId(int id)
{
return await this._service.GetTransactionOrderId(id);
}
在我的 Angular 2 应用程序中,我订阅了我的提供商,它无法解析来自我的服务器的响应。
this.meetingsProvider.getTransactionOrderId(this.meetingId).subscribe((transactionId: string) => {
this.transactionOrderId = transactionId;
});
我的 Provider 代码如下所示:
getTransactionOrderId(meetingId: number): Observable<string> {
const headers = new Headers();
headers.append('Content-Type', 'application/json');
return this.http.post(`${this.apiUrl}/${this.route}/transactionOrderId/${meetingId}`, null, {
headers: headers
}).map(res => <string>res.json());
}
我的服务器以正确的事务顺序 ID 响应,响应如下所示:
status: 200
statusText: "OK"
type: 2
url: "http://localhost/api/meetings/transactionOrderId/4"
_body: "0c290d50-8d72-4128-87dd-eca8b58db3fe"
我有其他 api 调用使用返回 bool 的相同代码返回正常,但是当我尝试返回字符串时,我得到一个解析错误,为什么?
【问题讨论】:
-
是的,抱歉,如前所述,服务器返回的不是有效的 json
标签: c# angular typescript asp.net-core