jquery-3.0.0.min.js:4 POST http://localhost:62863/Home/insert 500 (Internal Server Error)

问题

在这里插入图片描述
点击按钮提交表单一直返回error,查了资料原来是在ASP.NET MVC框架的JSON序列化返回对象时引发的一个运行时错误。也就是data格式错了,
jquery-3.0.0.min.js:4 POST http://localhost:62863/Home/insert 500 (Internal Server Error)_第1张图片
后台是这样的
jquery-3.0.0.min.js:4 POST http://localhost:62863/Home/insert 500 (Internal Server Error)_第2张图片
按照网上说的把data改了之后还是无果,还是一样报上面的错误
jquery-3.0.0.min.js:4 POST http://localhost:62863/Home/insert 500 (Internal Server Error)_第3张图片
按照网上的方法加JSON.stringify()终于跳到后台,但传输过来的data为null,原来contentType: "application/json; charset=utf-8",这句需要与JSON.stringify()联合起来用。
在这里插入图片描述
然后我一直查为什么传输过去的参数是null,这让我非常迷惑,后来我去掉contentType和data外面的引号之后,神奇地获取到了参数,于是我不得不深入了解一下这个contentType到底何方妖孽。
jquery-3.0.0.min.js:4 POST http://localhost:62863/Home/insert 500 (Internal Server Error)_第4张图片

解决

所以Failed to load resource: the server responded with a status of 500 (Internal Server Error)这个问题出现的原因是我加了contentType: "application/json; charset=utf-8",这句。为什么呢?这到底何方妖孽,具体了解一下。
参考文章

          $.ajax({
                url: "../Home/insert",
                type: "POST",
                dataType: "json",
                data: {"customer":  $.trim($(customer).val()), "description": $.trim($(description).val()) , "paperid":  $.trim($(paperid).val()),"change": $.trim($(change).val())},
                cache: false,
                success: function () {
                    alert('success');
                }, error: function (jqXHR, textStatus,errorThrown) {
                    console.log(jqXHR+textStatus+errorThrown);
                    alert('error');
                }
            })

拓展

$.ajax contentTypedataType , contentType 主要前端发送给后端的格式,dataType设置后端返回的格式。
contentType: "application/json; charset=utf-8",是用来告诉服务端 消息主体是序列化后的 JSON 字符串,但是我这里的是json格式,不是json对象。所以没有必要使用这句。

参考文章

你可能感兴趣的:(ASP.NET)