如何发布json对象和文件到具有抓取的asp.net服务器
我有点卡在这里,我试图从我的indexedDb发布一个json对象,同时将一个IFormFile对象发布到服务器。接受它的方法是这样的:如何发布json对象和文件到具有抓取的asp.net服务器
[HttpPost] public async Task<IActionResult> Create(BatchModel model, IFormFile vinFile)
{
//logic goes here
}
这种方法以前能用,以前我曾来存储我batchModels为JSON对象,并刚刚发布了直接从一个POST形式。自那时以来发生了很多变化,现在的他在网上再从离线状态获得,具有以下(简化)方法,客户端会尽快上传:
if (infoChanged === true) { fetchPromises.push(
fetch('/Batch/Create/', {
headers: new Headers({
'Content-Type': 'application/javascript' //Tried this with multi-part/form
}),
credentials: 'same-origin',
method: 'POST',
body: batch //, vinFile
})
);
}
return Promise.all(fetchPromises);
为了测试我试图用该方法只有模型填充了,唯一需要改变的是我必须在C#代码中添加一个[FromBody]标签,但现在我需要填充vinFile。 我已经用FormData对象试了一下,在Create函数中添加了同名的vinFile和batch。但是这会导致两个变量都为空。
回答:
你需要看的关键特征是你的标题。你可以改变你的响应为JSON,如果你做标题:{Content-Type:“application/json”}
你想要的东西是这样的:你需要自己配置类型。
fetch(myRequest).then(function(response) { var contentType = response.headers.get("content-type");
if(contentType && contentType.includes("application/json")) {
return response.json();
}
throw new TypeError("Oops, we haven't got JSON!");
})
.then(function(json) { /* process your JSON further */ })
.catch(function(error) { console.log(error); });
https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch
以上是 如何发布json对象和文件到具有抓取的asp.net服务器 的全部内容, 来源链接: utcz.com/qa/265223.html