星空网 > 软件开发 > ASP.net

使用ajax调用web Api 方法中出现的问题总结

一,Get请求

1,无参数Get请求,跟平常写ajax请求一样,并无什么差别

  $.ajax({
            url: '.../api/User/UserVerify,
            type: 'get',
            success: function (json) {
                alert(json);
            },
            error: function () {
                alert("error");
            }
        });

此时,后台代码api代码可以直接public string UserVerify(){},需要在action上添加HttpGet特性

2,有一个或多个参数的Get请求

$.ajax({
            url: '.../api/User/UserVerify?loginName=admin&passWord=123456',
            type: 'get',
            success: function (json) {
                alert(json);
            },
            error: function () {
                alert("erroe");
            }
        });

此时,后台Api代码可以public string LoginVerify(string loginName,string passWord){},需要在action上添加HttpGet特性

二,Post请求

1,无参数的Post请求

  $.post(
            '.../api/User/UserVerify',
           function (json) {
                alert(json);
            });

此时,后台调用需要在Action上添加HttpPost特性,   public string LoginVerify(){}

2,一个参数的Post请求

在post请求中,方法的参数必须要用 [FromBody] 属性来修饰才可以, [FromBody] 就告诉Web API 要从post请求体重去获取参数的值。也就是要写成如下形式:

 [HttpPost,ActionName("UserVerify")]
        public string LoginVerify([FromBody]string loginName){}

同时,前台调用时如果还是按之前的写法

$.post(
            '.../api/User/UserVerify',
            { loginName:"admin"},
           function (json) {
                alert(json);
            });

则会出现如下情况,即:可以正常跳转,可是获取不到相应传输的值。因为Web API 要求请求传递的 [FromBody] 参数,肯定是有一个特定的格式,才能被正确的获取到。而这种特定的格式并不是我们常见的 key=value 的键值对形式。Web API 的模型绑定器希望找到 [FromBody] 里没有键名的值,也就是说, 不是 key=value ,而是 =value 。

使用ajax调用web Api 方法中出现的问题总结

所以,接下来我们把调用参数修改为如下形式:

使用ajax调用web Api 方法中出现的问题总结

需要注意的时,在此时一定要把服务重新生成

3,两个或多个参数的Post请求

[FromBody] 修饰的参数只能有一个。我们需要对传递的多个参数进行封装才行。

这里,我们可以将 loginName和 passWord 封装成一个User类

使用ajax调用web Api 方法中出现的问题总结

 

后台方法需要

[HttpPost,ActionName("UserVerify")]
        public string LoginVerify([FromBody]UserExEntity user)
        {
            try
            {
                return "姓名" + user.loginName+"密码"+user.passWord;
            }
            catch
            {
                return null;
            }
        }

 

前台调用需要

使用ajax调用web Api 方法中出现的问题总结

此时,我们可以看到Form Data 的格式是 key=value&key=value 这种表单数据格式,我们平时使用的比较多的一般为json格式。

 

使用ajax调用web Api 方法中出现的问题总结




原标题:使用ajax调用web Api 方法中出现的问题总结

关键词:ajax

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

邮件营销原来还能这么用,不为人知的5个优化技巧(附模板):https://www.ikjzd.com/articles/1661997208163348482
火速收藏!跨境售后问题如何处理?一文学会所有解决方案!:https://www.ikjzd.com/articles/1661997609519882242
父亲节跨境营销及选品指南大公开!父亲节独立站营销策略:https://www.ikjzd.com/articles/1661998022172897281
如何通过整合电子商务增长方案提升品牌力和销售力?:https://www.ikjzd.com/articles/1661998970525392897
销量飙升280%!游戏机在俄罗斯卖爆了:https://www.ikjzd.com/articles/1662004214026760194
如何运营facebook主页:https://www.ikjzd.com/articles/1662015679542009857
价格翻了8倍,居然还有人买,秘诀在这里。:https://www.kjdsnews.com/a/1836642.html
欧洲B2B电商市场有待挖掘!销售总额将达1.7万亿欧元:https://www.kjdsnews.com/a/1836643.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流