javascript - JSON 数据作为字符串工作,但在对象时抛出内部错误

标签 javascript jquery asp.net ajax

我正在使用这样的 AJAX 帖子:

$.ajax({
        type: "POST",
        url: "/AJAXServices.aspx/" + method,
        data: params,
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(data) {
            successfunc();
        },
        error: function(data) {
            errorfunc();
        }
    });

当我像这样使用变量“params”时:

var params = '{"QuestionID":"' + UpdateQuestion_ID + '", "NewText":"' + newText + '"}';

它有效。

但是当我将其更改为:

var params = { QuestionID: UpdateQuestion_ID, NewText: newText };

这会在服务器端引发内部服务器错误:

Failed to load resource: the server responded with a status of 500 (Internal Server Error)

服务器端方法:

    [WebMethod]
    public static void UpdateQuestion(string QuestionID, string NewText)
    {
        ....
     }

有什么想法吗?

最佳答案

第一种情况 params 是一个字符串,第二种情况 params 是一个对象。

我猜服务器需要一个有效的 json 字符串。确保 params 是一个对象并使用 JSON.stringify()将其转换为有效的 JSON发送之前的字符串。

$.ajax({
    ...
    data: JSON.stringify(params),
    ...
});

关于javascript - JSON 数据作为字符串工作,但在对象时抛出内部错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41312393/

相关文章:

javascript - 滚动按钮 jQuery 不能立即工作

javascript - 如何使用 jQuery 删除父元素

javascript - 使用 jquery 验证日期并帮助用户

javascript - 单击按钮时,循环遍历文本框 javascript

javascript - 有条件地更改每个列表项的背景颜色 JQuery Mobile

javascript - 从 Google 文档获取选择

javascript - 用javascript替换div内容

javascript - 如何实现类似 facebook 的头像上传?

javascript - 在 asp.net 中使用 javascript 的最佳方式是什么?

asp.net - 为日期列Telerik网格自定义过滤器选项