加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angularjs – 为什么在期望POST主体中的数据时需要FromBody属性

发布时间:2020-12-17 07:59:30 所属栏目:安全 来源:网络整理
导读:我可以将数据发送到服务器,但仅当我使用FromBody-Attribute时. 为什么json数据不会使用Post自动从Body中读取? 后端web api [HttpPost]public async TaskIActionResult Post([FromBody]CreateSchoolyearRequestDTO dto){} 前端angularjs this.createSchoolye
我可以将数据发送到服务器,但仅当我使用FromBody-Attribute时.

为什么json数据不会使用Post自动从Body中读取?

后端web api

[HttpPost]
public async Task<IActionResult> Post([FromBody]CreateSchoolyearRequestDTO dto)
{

}

前端angularjs

this.createSchoolyear = function (schoolyear) {
  var path = "/api/schoolyears";
  return $http({
      url: path,method: "POST",data:  schoolyear,contentType: "application/json"
  }).then(function (response) {
      return response;
  });
};
仅仅因为某些事情是POST请求,没有明确的规则如何传递参数. POST请求仍然可以包含URL中编码的查询参数.期望方法参数是“简单”类型(字符串,整数等)的查询参数.

复杂类型通常应该是POST表单对象.标准的ASP.NET POST请求是表单提交,例如登录时.这些请求中的参数通常编码为application / x-www-form-urlencoded,基本上是一串键/值对.对于复杂的参数类型,例如表单视图模型对象,这是默认的.

对于所有其他非默认情况,您需要明确表示方法参数的来源,以及如何在请求中传输它.为此目的,有许多不同的属性:

> FromBodyAttribute – 来自请求正文的参数> FromFormAttribute – 用于来自单个表单数据字段的参数> FromHeaderAttribute – 用于来自HTTP标头字段的参数> FromQueryAttribute – 用于来自URL中编码的查询参数的参数> FromRouteAttribute – 用于来自路径数据的参数> FromServicesAttribute – 用于应在方法级别注入服务的参数

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读