【问题标题】:Json parser error in MVCMVC中的Json解析器错误
【发布时间】:2015-09-09 12:38:17
【问题描述】:

我正在使用 ajax 将 xml 字符串传递到服务器端。它工作正常,所有数据都被保存并从服务器端返回所需的值。但是不要为什么json显示解析器错误。

我的代码:

var XML = "<Review><Question QId='1' QTId='10' /><Question QId='2' QTId='10' /></Review>";
           var pData = { XML: XMLString };
            $.ajax({
                url: '/Dashboard/SaveReview',
                type: 'POST',
                data: pData,
                dataType: 'json',
                async: false,
                success: function (data) {
                    alert(data);
                    if (data == "Y") {
                        alert('Success!');
                    }
                    else {
                        alert('Fail!');
                    }
                },
                error: function (req, status, error) {
                    var r = "req:" + req + ", status:" + status + ", error:" + error;
                    alert(r);
                    //alert('Unable to connect server!');
                    return false;
                }
            });

MVC:

[HttpPost]
    [ValidateInput(false)]
    public JsonResult SaveReview(string XML)
    {
        LibraryModel LM = (LibraryModel)Session["Library"];

        string strResult = dsr.SaveReview(LM.ProjectId, Convert.ToInt32(LM.UserId), 141, null, XML);

        return Json(strResult, JsonRequestBehavior.AllowGet);
    }

显示其成功的图片:-

但它显示错误:

【问题讨论】:

  • 似乎最终确实发生了一些错误(在操作之后)并且服务器返回了一堆 HTML。检查开发者控制台中的“网络”标签
  • 或许对你有帮助,参考stackoverflow.com/questions/5816126/…

标签: jquery json ajax asp.net-mvc-4


【解决方案1】:

得到了解决方案。谢谢大家的回复。实际上我错过了在网络配置中设置
<httpRuntime targetFramework="4.5" requestValidationMode="2.0" /> <pages validateRequest="false">

【讨论】:

  • 这真是一个糟糕的解决方案。您已经使用了dataType: 'json', 并返回字符串这才是真正的问题。使用dataType: 'text'
  • 这条评论是我在将参数传递给 Crystal 报表时遇到的问题的解决方案。非常感谢!
猜你喜欢
  • 2018-04-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多