• mvc5 webap2 前台如何使用 ajax 请求后台API


    按照正常的写法,总是出现404错误,研究了很久,在这里找到了解决方案:http://buxuxiao.com/article/using-jquery-to-post-frombody-parameters-to-web-api

    现在总结一下,

    单个参数的情况下:

    1、后台参数正确的写法如下:

            
    [Route("Services/{controller}/{action}")]
    [HttpPost]
    [HttpGet]
    public string UploadTransportNetworkAlarmChat([FromBody]string obj)
    {
    ... }

    必须在参数列表前面加上[FormBody]标签。

    2、前台的参数,仍然以key-value方式添加,但KEY的名字必须置为空:

    $.ajax({
                    type: "POST",
                    url: "../Services/ChatTest/UploadTransportNetworkAlarmChat",
                    data: {"":"helloWorld"},
                    dataType: 'JSON',
    })

    多个参数的情况下,

    1、后台需要定义实体类,参数列表中不用增加[FromBody]标签,如下:

        public class tempObj
        {
            public string imgBase64 { get; set; }
            public string name { get; set; }
        }

    接收 方法:

    [Route("Services/{controller}/{action}")]
            [HttpPost]
            [HttpGet]
            public string UploadTransportNetworkAlarmChat(tempObj obj)
            {}

    2、前台仍然使用JSON

                var TempObj = { "imgBase64": image, "name": "helloWorld" }
                $.ajax({
                    type: "POST",
                    url: "../Services/ChatTest/UploadTransportNetworkAlarmChat",
                    data: TempObj,
                    dataType: 'JSON',
                })
                  .done(function (data) {
                      alert("Data Loaded: " + data);
                  });
  • 相关阅读:
    高程第五章(引用类型)
    第四章(变量、作用域、内存问题)
    label语句和break continue的使用(高程第三章)
    高级程序设计第三章
    max取得数组的最大值
    使用bind()扩充作用域
    函数
    数据类型、字符编码、文件处理
    Python入门
    8.8每日作业系列之循环模块运用
  • 原文地址:https://www.cnblogs.com/perpetual/p/3769927.html
Copyright © 2020-2023  润新知