Javascript 获取base64字符串的Http失败
这是我的代码:Javascript 获取base64字符串的Http失败,javascript,angular,typescript,Javascript,Angular,Typescript,这是我的代码: getPhoto(employeeId: string): Observable<any[]> { const headers = new HttpHeaders({ 'responseType': 'json' }) const url = `/Emps/GetPhoto`; const params = new HttpParams({ fromObject: { employeeId }, });
getPhoto(employeeId: string): Observable<any[]> {
const headers = new HttpHeaders({
'responseType': 'json'
})
const url = `/Emps/GetPhoto`;
const params = new HttpParams({
fromObject: { employeeId },
});
return this.http.get<any[]>(url, { params, headers });
}
getPhoto(employeeId:string):可观察{
const headers=新的HttpHeaders({
“responseType”:“json”
})
常量url=`/Emps/GetPhoto`;
const params=新的HttpParams({
fromObject:{employeeId},
});
返回this.http.get(url,{params,headers});
}
这是该方法返回的结果:
数据:image/svg;base64,PHN2ZYB4BWXUCZ0IAHR0CDOVL3DY53MY5VCMCVMJAWMC9ZDMCIIHHTBG5ZONHSAW5RPSJODHRWOI8VD3D3LNCZLM9YZY8OTK5L3HSAW5RIIB2AW3QM94PSIWIDAGND4IDI4MCGD
该方法返回Success 200,但在控制台中,我在XMLHttpRequest.onLoad的JSON.parse()处的位置0处获得了JSON中的意外标记d,并且getPhoto subscribe调试器从未命中。我做错了什么?用于AngularHttpClient
的GET方法是json
。尝试显式设置响应类型
返回this.http.get(url,{params,headers},responseType:'text'});
如果更适合您的需求,您还可以使用blob
或arraybuffer
。它的类型定义如下
responseType:'arraybuffer'|'blob'|'json'|'text'
更新1:将响应类型
推到选项
对象之外,for AngularHttpClient
的GET方法是json
。尝试显式设置响应类型
返回this.http.get(url,{params,headers},responseType:'text'});
如果更适合您的需求,您还可以使用blob
或arraybuffer
。它的类型定义如下
responseType:'arraybuffer'|'blob'|'json'|'text'
更新1:将
responseType
推到选项之外
对象您会因为响应不是有效的json对象而收到该错误您会因为响应不是有效的json对象而收到该错误返回此.http.get(url,{params,responseType:'text'});如果我这样做,我会得到语法错误类型“Observable”不可分配给类型“Observable”。@petko_stankoski:您期望的是一个any
数组,而响应不是。尝试将返回类型更改为getPhoto(employeeId:string):Observable
。仍然会出现错误:没有重载匹配此调用。重载1/15'(url:string,选项:{headers?:HttpHeaders{[header:string]:string{string[]};观察:“事件”;参数?:HttpParams{[param:string]:string{[param:string];};reportProgress?:boolean;responseType?:“json”;带凭据?:boolean;}):可观察到),给出以下错误。类型“text”不可分配给类型“json”。@petko_stankoski:这是我的错误。重载定义中显示的responseType
应该在选项
对象之外。我已经更新了答案。请查看它现在是否工作。另一个错误:找不到名称“responseType”。tsreturnthis.http.get(url,{params,responseType:'text'});如果我这样做,我会得到语法错误类型“Observable”不可分配给类型“Observable”。@petko_stankoski:您期望的是一个any
数组,而响应不是。尝试将返回类型更改为getPhoto(employeeId:string):Observable
。仍然会出现错误:没有重载匹配此调用。重载1/15'(url:string,选项:{headers?:HttpHeaders{[header:string]:string{string[]};观察:“事件”;参数?:HttpParams{[param:string]:string{[param:string];};reportProgress?:boolean;responseType?:“json”;带凭据?:boolean;}):可观察到),给出以下错误。类型“text”不可分配给类型“json”。@petko_stankoski:这是我的错误。重载定义中显示的responseType
应该在选项
对象之外。我已经更新了答案。请查看它现在是否工作。另一个错误:找不到名称“responseType”。ts