【问题标题】:ajax http post giving error 500 when sending jsonajax http post在发送json时给出错误500
【发布时间】:2014-02-25 15:30:41
【问题描述】:

我正在尝试使用 ajax 中的 HTTP POST 方法将 json 数据作为文本发送到我的 MVC4 项目中的控制器。这是我的 ajax 代码:

function saveService() {
        var data0 = $("#nameInput").val();
        var data1 = generateJSON();
        var data2 = $("#wellContainer").html();
        var jsondataobject = { name: data0, counter: counter, json: data1, html: data2 };
        var stringobject = JSON.stringify(jsondataobject);
        console.log(stringobject);

        console.log(data1);
            $.ajax({
                type: 'POST',
                dataType: 'text',
                url: "http://localhost:49162/Admin/SaveNewTemplate",
                data: "jsonData=" + stringobject,
                success: function (returnPayload) {
                    console && console.log("request succeeded");
                },
                error: function (xhr, ajaxOptions, thrownError) {
                    console && console.log("request failed");
                },

                processData: false,
                async: false
            });
    }

这是我的控制器方法

[HttpPost]
public void SaveNewTemplate(String jsonData)
{
    DataAccessLayer DAL = new DataAccessLayer();
    DAL.SaveServiceTemplate(jsonData);
}

这是我在控制台中的错误:

POST http://localhost:49162/Admin/SaveNewTemplate 500 (Internal Server Error) 

我的 stringobject 是一个正确的 json 对象转换为字符串。如果我用一些随机文本替换 ajax 函数中的这个变量,它就可以工作。

为什么会出现 500 错误?

【问题讨论】:

  • 我遇到了同样的错误。你有解决办法吗?

标签: jquery asp.net-mvc json http-post


【解决方案1】:

似乎是正在发送的 jsondataobject 的问题。所有对象都应带引号: {“名称”:数据0,“计数器”:计数器,“json”:数据1,“html”:数据2}

还有: 数据:“jsonData=”+字符串对象, 应该: 数据:字符串对象,

(假设变量 counter 也被正确填充,因为代码 sn-p 中没有提到)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多