angular - Angular http put - 调用了不正确的方法
问题描述
我有一些http.put
包装纸。它会导致调用不正确的 PUT 重载。我需要返回的那个Observable<Object>
,而是Observable<ArrayBuffer>
被调用的那个。这是我http.put
在 Angular 应用程序中的包装器:
public put(endpoint: string, data?: any, options?) {
let jsonData = JSON.stringify(data);
if (options == undefined) {
options = {};
}
options.headers = this.headers;
return this.http.put(this.uri + endpoint, jsonData, options);
}
如果我这样称呼它,那么即使在编译期间它也会决定调用以下 http.put 重载:
put(url: string, body: any | null, options: {
headers?: HttpHeaders | {
[header: string]: string | string[];
};
observe?: 'body';
params?: HttpParams | {
[param: string]: string | string[];
};
reportProgress?: boolean;
responseType: 'arraybuffer';
withCredentials?: boolean;
}): Observable<ArrayBuffer>;
但是,我需要调用返回 sjust 对象的那个:
put(url: string, body: any | null, options?: {
headers?: HttpHeaders | {
[header: string]: string | string[];
};
observe?: 'body';
params?: HttpParams | {
[param: string]: string | string[];
};
reportProgress?: boolean;
responseType?: 'json';
withCredentials?: boolean;
}): Observable<Object>;
解决方案
尝试设置responseType: 'json'
在options
.
public put(endpoint: string, data?: any, options?) {
let jsonData = JSON.stringify(data);
if (options == undefined) {
options = {};
}
options.headers = this.headers;
options.responseType = 'json';
return this.http.put(this.uri + endpoint, jsonData, options);
}
推荐阅读
- c - 将双指针释放到结构的正确方法
- debugging - 如何在 GDB 中让 Firefox 启动更快
- bootstrap-4 - 有谁知道为什么引导程序中的自定义 Ajax 表不起作用?
- php - 重新加载页面时新的 sessionid 但转到另一个页面并再次返回时相同的 sessionid(不工作)
- c# - 为什么 System.Net.Http.Headers.HttpResponseHeaders 不可索引?
- arduino - Arduino 代码/存储空间不足/arduino uno
- javascript - 如何使用链接而不是按钮打开模式弹出窗口
- django - Django 上下文 Datetime 唯一日期
- php - 我的表单有可变数量的字段。如何使用 PHP 将每个字段提交到 MySQL 数据库?
- github - GitHub Actions (Workflows) 错误 - 计费问题