【发布时间】:2019-10-20 05:53:34
【问题描述】:
我正在向 api 发布一个具有两个不同参数的对象,每个参数需要不同的 'Content-Type',第一个参数 - groups 应该具有以下 'Content-Type':
'Content-Type': 'application/json',
第二个:
'Content-Type': 'multipart/form-data'
是否可以为同一个帖子设置具有两种不同内容类型的标题?
const { result } = apiPost(`api/emails/attachments?request=${request}&ticketId=${ticketId}`, data, {
headers: { 'Content-Type': 'multipart/form-data' },
});
};
票对象:
public class ticket
{
[FromBodyAttribute] public Grouping groups { get; set; }
public IEnumerable<IFormFile> files { get; set; }
}
ApiPost:
export const apiFetch: <T>(url: string, options?: object) => Promise<T> = (
url: string,
options: object,
) => adalFetch(authContext, adalConfig.endpoints.api, axios, url, options);
export const apiPost = async <T>(url: string, data: object, headers: object): Promise<T> => {
const options = {
method: 'post',
data,
config: {
headers: headers || {
'Content-Type': 'application/json',
},
},
};
console.log(data);
console.log(options);
return apiFetch(url, options);
};
【问题讨论】:
-
这可能会有所帮助。 stackoverflow.com/questions/5809099/…
-
它必须是 FormData,并且 JSON 可以是 FormData 的一部分,或者作为标题添加
-
@Slai 我不确定我理解你的意思,你能解释一下吗?
-
不,不可能,即使添加两个Content-Type header,内容主体也只能是一种类型。但是没有什么可以阻止您将
Grouping groups作为 json 字符串传递到表单数据中。 -
@AvinKavish 你能举个例子吗?
标签: javascript