坑:
1.fetch如何使用form Data 格式 发送数据?
答:使用 var formData = new FormData();
formData.append('developerId', '633');//传参数
2.在控制台发现Content-Type:multipart/form-data ;而且数据没有发送成功,后面也没有boundary的分割?
答:不要在头部设置'Content-Type': 'multipart/form-data;',
headers: {
// 'Content-Type': 'multipart/form-data;', 删除,不要多写
'Authorization': ('Bearer ' + localStorage.getItem('token')),
},
3.如何FormData.append()方法如何添加json对象?
答:要用JSON.stringify()来转换一下json为字符串
let annotations ={
"CTASK_ID": item.CTASK_ID,
"ITEM_Id": ctaskno,
"operatorList ": {
"operatorRealName": this.state.userid,
"operator": this.state.userid
}
}
formData.append('annotations',JSON.stringify(annotations));
整体代码:
let annotations ={
"CTASK_ID": item.CTASK_ID,
"ITEM_Id": ctaskno,
"operatorList ": {
"operatorRealName": this.state.userid,
"operator": this.state.userid
}
}
var formData = new FormData();
formData.append('developerId', '633');
formData.append('name', item.CPLAN_NAME);
formData.append('annotations',JSON.stringify(annotations));
return fetch(`/api/XXXXXXXXXXX/arpackage/tasks?arpackageId=633`, {
method: "POST",
headers: {
'Authorization': ('Bearer ' + localStorage.getItem('token')),
},
body: formData,
}).then(res => res.json())
.catch(error => console.error('Error:', error))
.then(response => {
if(annotations.length<1){
Toast.info('AR:annotations为空', 2)
}
else{
console.log('Success:', response)
Toast.info('AR成功调用', 2)
}
});