一次webapi Post请求失败记录
//点击添加按钮
$("#add").click(function () {
//layer.msg("添加");
var data = { "stuAge": 20, "stuClass": 2, "stuName": "诸葛大力", "stuStatus": 1 };
alert(data);
$.ajax({
url: '/api/LayuiApi/AddStudent',
contentType: 'application/json',
type: 'post',
data: JSON.stringify(data),
success: function () {
}
});
});
后台接口:
[HttpPost]
public IActionResult AddStudent(Student stu)
{
try
{
_context.Student.Add(stu);
_context.SaveChanges();
return Ok(new { state = true, msg = "添加成功" });
}
catch(Exception ex)
{
return Ok(new { state = false, msg = ex.Message});
}
}
最开始直接将var data = { "stuAge": 20, "stuClass": 2, "stuName": "诸葛大力", "stuStatus": 1 };作为数据传到后台 无论怎样更改访问都失败,
最终发现需要将data改为 JSON.stringify(data), 问题解决。。。但是花了好久才发现
在更新一点:
当我在分装了方法 打算直接传入实体 以后直接调用时,方法如下:
function Save(model) {
$.ajax({
url: addurl,
contentType: 'application/json',
type: 'post',
data: JSON.stringify(model),
success: function (res) {
if (res.state == true) {
var obj = { stuName: $("#stuName").val(), stuAge: $("#stuAge").val(), stuClassId: $("#stuClassName").val() };
ReloadTable("demo", tableurl, obj);
layer.closeAll();
layer.msg("添加成功", { icon: 1 });
}
else {
layer.msg("添加失败,请联系管理员!", { icon: 2 });
console.log(res.msg);
}
}
});
}
在调用时我一开始是这么传值的:
$("#add").click(function () {
InitAddForm();
layer.open({
type: 1,
area: ['860px', '360px'],
content: $('#AddDiv'),
btn: ['保存', '取消'],
yes: function (index, layero) {
var stuName = $("#AddDiv input[name='stuName']").val();
var stuage = $("#AddDiv input[name='stuAge']").val();
var stuClass = $("#shId").val();
if (CheckAddForm(stuName, stuage, stuClass)) {
var data = { "stuAge": parseInt(stuage), "stuClass": parseInt(stuClass), "stuName": stuName, "stuStatus": 1 };
Save(data);
} else {
return false;
}
}
});
})
我一开始并没有加parseint
var data = { "stuAge": parseInt(stuage), "stuClass": parseInt(stuClass), "stuName": stuName, "stuStatus": 1 };
以至于后来调试前台js才发现栓来的age等都是字符串 所以和后台的模型类定义的int类型不符合 怎么传都是400 || 405
个人觉得这个点也很值得注意
postman测试结果如下图:
1.当我把age加上双引号变为字符串时:
返回为400
当我把age改回int
今天又犯了一个错 在core 的webapi中
忘记指定给路由配置action 导致半天文件上传访问接口一直失败 。。。。。痛定思痛 以后绝对不再犯了 路由配置!!!
一次webapi Post请求失败记录的更多相关文章
- 网络请求失败记录(安卓4g网络下第一次请求特别慢或者失败)
最近app的一次版本上线以后出现4g网络下请求接口特别慢,第一次调用接口非常非常慢或者直接访问失败,后面就正常了,但是WiFi情况下并不会出现这个问题.最主要的是IOS的线上app并没有问题. 开始怀 ...
- WebApi接口请求失败,找不到资源。
WebApi开发接口,实现同步数据库的数据给安卓. public class UserInfoController : ApiControllerBase { private UserBLL user ...
- 使用ActionFilterAttribute 记录 WebApi Action 请求和返回结果记录
使用ActionFilterAttribute 记录 WebApi Action 请求和返回结果记录 C#进阶系列——WebApi 异常处理解决方案 [ASP.NET Web API教程]4.3 AS ...
- WebApi(四)-Post接口请求失败或接受不到参数(解决方法)
post方式只能接受一个参数而且必须用FromBody特性标识,所以当没有使用FromBody特性标识的时候就会请求失败,如有添加添加了那访问接口时候参数应传对象不能是key:val的格式否则会接收到 ...
- WebApi 异步请求(HttpClient)
还是那几句话: 学无止境,精益求精 十年河东,十年河西,莫欺少年穷 学历代表你的过去,能力代表你的现在,学习代表你的将来 废话不多说,直接进入正题: 今天公司总部要求各个分公司把短信接口对接上,所谓的 ...
- Asp.Net WebApi Post请求整理(一)
Asp.Net WebApi+JQuery Ajax的Post请求整理 一.总结 1.WebApi 默认支持Post提交处理,返回的结果为json对象,前台不需要手动反序列化处理.2.WebApi 接 ...
- spring Boot使用AOP统一处理Web请求日志记录
1.使用spring boot实现一个拦截器 1.引入依赖: <dependency> <groupId>org.springframework.boot</grou ...
- IE浏览器缓存导致Ajax请求失败
在IE浏览器中通过Ajax请求后台的数据,如果Page请求是postback类型的,可能会导致Ajax请求失败的问题 我们都知道ajax能提高页面载入的速度主要的原因是通过ajax减少了重复数据的载入 ...
- c# WebApi POST请求同时包含数据及其文件
原因:创建.net WebApi的接口API.IIS作为服务端.安卓作为客户端发送json文件及其文件. Android端使用xUtils3.0实现文件上传 java代码: //要传递给服务器的jso ...
随机推荐
- JavaScript判断字符串中出现次数最多的字符,并统计其次数
要求: 输出一个给定字符串``中出现次数最多的字符,并统计其次数. 实现思路: 利用charA()遍历这个字符串 把每个字符都存储给对象,如果对象没有该属性,就先幅值为1,如果存在了就+1 遍历对象, ...
- 0xctf[No parameters readfile](魔改版[GXYCTF2019]禁止套娃)
阅读本文前建议先阅读本站中的另一篇文章:[GXYCTF2019]禁止套娃 重要参考链接:http://www.heetian.com/info/827 Leon师傅魔改了[GXYCTF2019]禁止套 ...
- Request对象基础应用实例代码一
输入用户名:<br><input type="text" name="yhm"><br><br>输入密码:< ...
- MeteoInfoLab脚本示例:计算水平螺旋度
尝试了用MeteoInfoLab编写计算水平螺旋度的脚本,结果未经验证.脚本程序: print 'Open data files...' f_uwnd = addfile('D:/Temp/nc/uw ...
- 【折半枚举+二分】POJ 3977 Subset
题目内容 Vjudge链接 给你\(n\)个数,求出这\(n\)个数的一个非空子集,使子集中的数加和的绝对值最小,在此基础上子集中元素的个数应最小. 输入格式 输入含多组数据,每组数据有两行,第一行是 ...
- linux(centos8):安装分布式事务服务seata(file单机模式,seata 1.3.0/centos 8.2)
一,什么是seata? Seata:Simpe Extensible Autonomous Transcaction Architecture, 是阿里中间件,开源的分布式事务解决方案. 前身是阿里的 ...
- go sync.WaitGroup
package mainimport ( "fmt" "sync")func say(i int ,wg *sync.WaitGroup) { defer wg ...
- 痞子衡嵌入式:MCUBootUtility v2.4发布,轻松更换Flashloader文件
-- 痞子衡维护的NXP-MCUBootUtility工具距离上一个版本(v2.3.1)发布过去2个月了,这一次痞子衡为大家带来了版本升级v2.4.0,这个版本主要有一个非常重要的更新需要跟大家特别说 ...
- Java Web核心组件之Servlet的使用介绍
Servlet是Java Servlet的简称,称为小程序或服务连接器,用Java编写的服务端程序,主要功能在于交互式地浏览和修改数据,生成动态的Web内容:Servlet运行于支持Java的应用服务 ...
- docker 启动mysql 挂载宿主机目录
在使用docker run 运行镜像获取容器时,有些容器会自动产生一些数据,为了这些数据会因为container (容器)的消失而消失,保证数据的安全,比如mysql 容器在运行中产生的一些表的数据, ...