栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

json解析错误语法错误输入意外结束

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

json解析错误语法错误输入意外结束

我不能确定是什么问题。可能是一些不好的角色,可能是您在开始和结束时留下的空格,不知道。

无论如何,您不应该像这样做那样将JSON硬编码为字符串。相反,将JSON数据发送到服务器的正确方法是使用JSON序列化器:

data: JSON.stringify({ name : "AA" }),

现在,在服务器上,还要确保您具有正确的视图模型,期望接收此输入:

public class UserViewModel{    public string Name { get; set; }}

以及相应的动作:

[HttpPost]public ActionResult SaveProduct(UserViewModel model){    ...}

现在还有一件事。您已指定

dataType:'json'
。这意味着您希望服务器将返回JSON结果。控制器操作必须返回JSON。如果您的控制器操作返回一个视图,则可以解释您遇到的错误。jQuery尝试解析服务器的响应时:

[HttpPost]public ActionResult SaveProduct(UserViewModel model){    ...    return Json(new { Foo = "bar" });}

这就是说,在大多数情况下,通常

dataType
在向ASP.NET
MVC控制器动作发出AJAX请求时,不需要设置属性。这样做的原因是因为当您返回一些特定值
ActionResult
(例如a
ViewResult
或a
JsonResult
)时,框架将自动设置正确的
Content-Type
响应HTTP标头。然后,jQuery将使用此标头来解析响应并将其作为参数传递给已解析的成功回调。

我怀疑您在这里遇到的问题是您的服务器未返回有效的JSON。它要么返回一些ViewResult或PartialViewResult,要么您尝试在控制器操作中手动制作一些损坏的JSON(显然,您永远不应该这样做,而应使用JsonResult)。

我刚刚注意到的另一件事:

async: false,

请避免将此属性设置为false。如果将此属性设置为

false
,则在整个请求执行期间将冻结客户端浏览器。在这种情况下,您可以提出正常要求。如果要使用AJAX,请开始考虑异步事件和回调。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/392173.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号