zoukankan      html  css  js  c++  java
  • 400 bad Request -- 参数不当引发的错误

    最近在为自己所在的演讲俱乐部开发一个小程序,后端是用.NET CORE 来实现,今天遇到了一个奇怪的问题,一直报400 bad request请求错误。

    前端代码:

    let url = behavior=='like'?'like':'like/cancel';
    this.request({
      url:url,
      method:'POST',
      data:{
        id:likeid
      }
    })
    

    后端代码:

       [HttpPost]
       public async Task<IActionResult> doLike([FromBody]int like_id)
        {
            return await Task.Run(() =>
            {
                
                jService.UpdateLikeStatus(model.Id, true);
                return Ok();
            });
        }
    

    然后奇怪的是一直报错,400-Bad Request,最后不断调试,还把参数请求属性改成了[FromHeader], 结果发现前端的代码能跳到这个方法里面,只是like_id一直未0 。

    最后无奈,推测是不是POST参数是不是需要对一个复合类型(非简单类型,比如int ,string等)。最后把参数请求改成了强类型,竟然可以了!

    [HttpPost]
    public async Task<IActionResult> doLike([FromBody] Journal_Member_Likes model)
    {
        return await Task.Run(() =>
        {
            
            jService.UpdateLikeStatus(model.Id, true);
            return Ok();
        });
    }
    

    @||400x0

    可以看到传递进来的Id跟前端是一样的了。

    事后在博客园翻了一下文章,发现有个人遇到的情况跟我是一样的。不过他是通过修改基本数据类型为object类型来达到传参的目的:

    public string PostTest([FromBody]object value)
    {
        return "Got it!";
    }
    

    以及还有评论说:

    //单个参数的情况下:
    jquery这样提交:$.ajax({
    url:"http://127.0.0.1:18170/api/coderecord",
    type:"post",
    data:{"":"13777777777"},
    success:function(data){
    }
    });
    
  • 相关阅读:
    iOS开发 当前时间 时间戳 转换
    iOS开发 下滑隐藏Tabbar
    iOS开发 浅见runloop
    iOS开发 检测版本更新
    IOS开发 二维码功能的实现
    级数
    算法-快速排序
    struts2.0中struts.xml配置文件详解【转】
    javascript原型【转】
    AOP各种的实现【转】
  • 原文地址:https://www.cnblogs.com/wanglee/p/12731418.html
Copyright © 2011-2022 走看看