NetCore API Controller Json

大伙发现了什么没?跟以往mvc大多数相同,但有些地方不同 ,我们来一起看看有何区别

1.首先SysUsersController上面有一段代码

[Produces("application/json")]
    //[Route("api/SysUsers")]
    [Route("api/[controller]/[action]")]
    public class SysUsersController : Controller
    {
    }

注释的部分先不管,首先我们接收的json格式内容,然后路由是 api/[controller]/[action]

这种情况我们只需要正常的ajax请求就能访问到了,

$.ajax({
                    url:'/api/SysUsers/Login',
                    type: 'POST',
                    contentType: "application/json; charset=utf-8",
                    data: {UserName:'shumin',Password:'123456'},
                    success: function (data) {
                        if (data.success) {
                            var href = '@Url.Action("Index")?' + new Date().getTime();
                            window.location.href = href;
                        } else {
                            alert(data.message);
                        }
                    },
                    error: function () {
                        alert('服务端错误');
                    }
                });

 我们运行一下, 发现拿不到数据,

 这是为什么呢,经过多番尝试,是前台http请求不对,因为我们约定的json传输,所以数据需要序列化

$.ajax({
                    url:'/api/SysUsers/Login',
                    type: 'POST',
                    contentType: "application/json; charset=utf-8",
                    data: JSON.stringify({UserName:'shumin',Password:'123456'}),
                    success: function (data) {
                        if (data.success) {
                            var href = '@Url.Action("Index")?' + new Date().getTime();
                            window.location.href = href;
                        } else {
                            alert(data.message);
                        }
                    },
                    error: function () {
                        alert('服务端错误');
                    }
                });

 

还有一点需要注意的事,ajax默认的

contentType是application/x-www-form-urlencoded

我们需要改成application/json; charset=utf-8

这样就可以拿到数据了

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值