Vue3 POST 将 JSON 转 .Net API

Vue3 POSTing JSON to .Net API

提问人:Bigbear 提问时间:11/9/2023 最后编辑:Brian Tompsett - 汤莱恩Bigbear 更新时间:11/10/2023 访问量:26

问:

当我尝试调用我的 API POSTing 数据时,我不断收到 400 个错误请求。 POST http://localhost:5081/Purchasing/TestCall/190200 400(错误的请求)

这是我的 Vue Call

const requestOptions = {
    method: 'POST',
    headers: {
        'Content-Type': 'application/json',

    },
    body: JSON.stringify(lstOrders.value),
};
fetch("http://localhost:5081/Purchasing/TestCall/"+ workOrder.value, requestOptions)

我从这些调用创建的数组中的对象

//return Ok(lstPDFs.OrderBy(x => x.FileName));
return Ok(JsonSerializer.Serialize(lstPDFs.OrderBy(x => x.FileName)));

它看起来像这个 JSON 数据: 在开发工具中,它是console.log(myReturnedList)

[[Target]]:Array(10)
0:{AutoID: 0, FileName: '4700.9359', FilePath: 'C:\\temp\\batchprint\\engserv\\190200\\Installation', FileSize: 0, CreatedDate: '0001-01-01T00:00:00', …}
1:{AutoID: 0, FileName: 'I_101', FilePath: 'C:\\temp\\batchprint\\engserv\\190200\\Installation', FileSize: 0, CreatedDate: '0001-01-01T00:00:00', …}
2:{AutoID: 0, FileName: 'I_102', FilePath: 'C:\\temp\\batchprint\\engserv\\190200\\Installation', FileSize: 0, CreatedDate: '0001-01-01T00:00:00', …}
3:{AutoID: 0, FileName: 'I_103four', FilePath: 'C:\\temp\\batchprint\\engserv\\190200\\Installation', FileSize: 0, CreatedDate: '0001-01-01T00:00:00', …}
4:{AutoID: 0, FileName: 'I_104', FilePath: 'C:\\temp\\batchprint\\engserv\\190200\\Installation', FileSize: 0, CreatedDate: '0001-01-01T00:00:00', …}
5:{AutoID: 0, FileName: 'I_105GC', FilePath: 'C:\\temp\\batchprint\\engserv\\190200\\Installation', FileSize: 0, CreatedDate: '0001-01-01T00:00:00', …}
6:{AutoID: 0, FileName: 'I_201', FilePath: 'C:\\temp\\batchprint\\engserv\\190200\\Installation', FileSize: 0, CreatedDate: '0001-01-01T00:00:00', …}
7:{AutoID: 0, FileName: 'I_202MMEvolution', FilePath: 'C:\\temp\\batchprint\\engserv\\190200\\Installation', FileSize: 0, CreatedDate: '0001-01-01T00:00:00', …}
8:{AutoID: 0, FileName: 'MMEvo', FilePath: 'C:\\temp\\batchprint\\engserv\\190200\\Installation', FileSize: 0, CreatedDate: '0001-01-01T00:00:00', …}

所以我的数据是 JSON,它和一个对象列表,这是我的下一个 API 调用所期望的。 这是我的 API 请求方法

[EnableCors]
[HttpPost("TestCall/{projectNumber}")]
public IActionResult TestCall(string projectNumber, [FromBody] List<PDFFile> pdfs)
{
    _logger.LogInformation("TEST");

    return Ok();
}
C# JSON Vue.js

评论

0赞 yoduh 11/10/2023
模型是否与 JSON 数组中发送的对象类型完全匹配?PDFFile
0赞 Bigbear 11/10/2023
我会说是的?我从返回 PDFFile 列表的 API 请求中获取我的 JSON 数组,我将仔细检查它是否准确
0赞 yoduh 11/10/2023
你做过任何调试吗?能否命中终结点内的断点?终结点是否适用于 Postman?在运行时,Visual Studio 中的任何“输出”窗口中是否报告了错误?
0赞 Bigbear 11/10/2023
我大摇大摆,我的 API 请求适用于此。当我尝试用前端击中它时,它失败了。我尝试将 json 更改为纯文本,但当我将其发送到 API 时,我遇到了一个不受支持的数据格式错误,API 甚至从未命中第一个断点来检索数据
1赞 Bigbear 11/10/2023
YAYYY做到了!我找到了谢谢!!这是对象验证,在 C# 中,我不接受对象中的空值,我最终使用了 postman,它告诉我它在 Swagger 上失败的每个属性都没有

答: 暂无答案