程序从写完到解决这个bug用了两天,就是415,也知道是ajax 的错误,但是就是死活找不到bug,也换了几个传值的方式,曾经还怀疑是其他地方写错了,经过检查,其他哪里都没有错,百度都搜遍了,最后发现是我的contentType的格式错误了,以为是application/x-www-form-urlencoded,都没有其他怀疑,又想到可能是data传的数据格式不对,data:JSON.stringify(data.field)。言归正传,一下是个人对415搜索到的一些解决方案和出现问题的地方的一些总结,希望可以帮到大家:
首先前端看ajax请求的contentType是否与后端一致,还有实体类的属性和前端的设置的属性是否相同等
其次再看发送的数据格式是否正确。
最后在看看数据库字段和实体类命名方式是否规范
我的问题:
contentType 选择的格式不正确
data:JSON.stringify(data.field) 这个需要加JSON.stringify(),否则也是415
以下是正确的格式
$.ajax({
url:"/deploy/save/add",
async: false,
contentType: 'application/json;charset=UTF-8', //
type:"POST",
dataType: "json",
data:JSON.stringify(data.field),
success: function(data){
if(data==true){
layer.alert("增加成功", {icon: 6},function () {
// 获得frame索引
var index = parent.layer.getFrameIndex(window.name);
//关闭当前frame
parent.layer.close(index);
//刷新
parent.window.location.replace("/deploy/list")
});
}else{
layer.msg('增加失败!',{icon: 6,time:1000});
}
},
error:function () {
layer.msg('ajax请求失败!',{icon: 6,time:1000});
}
});
以下自己查看的一些报415错误的解决方法:
https://blog.csdn.net/zhangpan_soft/article/details/82868189?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-5.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-5.channel_param
https://blog.csdn.net/majinggogogo/article/details/78383772