将 POST ReactJs 获取到 Controller .Net Core

Posted

技术标签:

【中文标题】将 POST ReactJs 获取到 Controller .Net Core【英文标题】:Fetch POST ReactJs to Controller .Net Core 【发布时间】:2019-12-03 06:04:18 【问题描述】:

我在获取 POST 到控制器时遇到问题,显示错误,如 "errors":"":["Unexpected character encountered while parsing number: W. Path '', line 1, position 6."],"title":"One or more validation errors occurred.","status":400,"traceId":"0HLOGKVEBUTKL:00000007"。当我也调试时,在我的控制器中它不会传递给控制器​​。

这是我发布的内容

我在客户端使用 ReactJs,在服务器端使用 Net Core。这是我的代码sn-p:

AddList.js

 fetch('api/SampleData/AddEmployee', 
   method: 'POST',
   headers: 
     'Accept': 'application/json; charset=utf-8',
     'Content-Type': 'application/json;charset=UTF-8'
   ,
   body: data,
 ).then((response) => response.json())
 .then((responseJson) => 
   console.log('Success:', JSON.stringify(responseJson));
   this.props.history.push("/list-data");
 )
   .catch(error => console.error('Error:', error));

SampleDataController.cs

[HttpPost("[action]")]
public JsonResult AddEmployee(EmployeesViewModel employee)


starrup.cs

 app.UseMvc(routes =>
 
   routes.MapRoute(
     name: "default",
     template: "controller/action=Index/id?");

   routes.MapRoute(
     name: "api",
     template: "api/controller/action/id?");
 );

【问题讨论】:

你可以在没有Content-Type 的情况下尝试一下。当我处理表单数据时,它对我有用 不同的错误"type":"https://tools.ietf.org/html/rfc7231#section-6.5.13","title":"Unsupported Media Type","status":415,"traceId":"0HLOGKVEBUTKP:00000008"不支持的媒体类型@mkamranhamid 我对.net一无所知,但看到你的错误,我猜你的目标资源应该被明确告知它应该在像这样'Content-Type': 'multipart/form-data'的正文中接收什么样的数据 你也可以试试this 【参考方案1】:

你不需要这个配置

   routes.MapRoute(
     name: "api",
     template: "api/controller/action/id?");

像这样在控制器中使用路由

[Route("api/[controller]/[action]")]
public class YourController : Controller

【讨论】:

【参考方案2】:

代替

body: data,

你可以试试这个吗?

body: JSON.stringify(data),

【讨论】:

以上是关于将 POST ReactJs 获取到 Controller .Net Core的主要内容,如果未能解决你的问题,请参考以下文章

ReactJS - setState Axios POST 响应

ReactJS 从 Promise 中获取结果

发送 post 请求时出现 CORS 错误,但在 Spring Boot 和 Reactjs 中未获取请求

如何使用 Reactjs fetch 将 POST 数据发送到烧瓶

由于 CORS 选项预检,ReactJS 无法发送 POST 请求

如何将本地json文件获取到reactjs中的构造函数中