如何发布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

回到顶部