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

肖恩

我得到了以下代码

function pushJsonData(productName) {
    $.ajax({
        url: "/knockout/SaveProduct",
        type: "POST",
        contentType: "application/json",
        dataType: "json",
        data: " { \"Name\" : \"AA\" } ",
        async: false,
        success: function () {
            loadJsonData();   
        },
        error: function (jqXHR, textStatus, errorThrown) {
          alert(textStatus + " in pushJsonData: " + errorThrown + " " + jqXHR);
        }
    });
}

请注意,我对数据值进行了硬编码。数据被很好地推送到数据库中。但是,我不断收到错误“解析错误语法错误,输入意外结束”。我确定我的数据使用正确的JSON语法。当我在Chrome检查器的网络上进行检查时,saveProduct请求显示数据正确。

{ "Name": "AA" }

此POST请求没有响应。因此,我对于解析错误的来源一无所知。我尝试使用FireFox浏览器。同样的事情发生了。

任何人都可以对什么地方出了错吗?

谢谢,

PS这是控制器代码

namespace MvcApplJSON.Controllers
{
    public class KnockoutController : Controller
    {
        //
        // GET: /Knockout/

        public ActionResult Index()
        {
            return View();
        }

        [HttpGet]
        public JsonResult GetProductList()
        {
            var model = new List<Product>();
            try
            {
                using (var db = new KOEntities())
                {
                    var product = from p in db.Products orderby p.Name select p;
                    model = product.ToList();
                }
            }
            catch (Exception ex)
            { throw ex; }
            return Json(model, JsonRequestBehavior.AllowGet);
        }
        [HttpPost]
        public void SaveProduct (Product product)
        {
            using (var db = new KOEntities())
            {
                db.Products.Add(new Product { Name = product.Name, DateCreated = DateTime.Now });
                db.SaveChanges();
            }
        }
    }
}
达林·迪米特罗夫(Darin Dimitrov)

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

无论如何,您不应该像这样做那样将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(例如aViewResult或a JsonResult)时,框架将自动设置正确的Content-Type响应HTTP标头。然后,jQuery将使用此标头来解析响应并将其作为参数传递给已解析的成功回调。

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

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

async: false,

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

错误:语法错误:JSON输入意外结束

来自分类Dev

Angular 2 / Web Api-json解析错误语法错误输入意外结束

来自分类Dev

未捕获的语法错误:JSON 输入意外结束 [}

来自分类Dev

语法错误,意外的':',期望输入结束

来自分类Dev

语法错误:意外的输入结束

来自分类Dev

解析错误:语法错误,文件意外结束

来自分类Dev

PHP解析错误:语法错误,文件意外结束,应为“`”

来自分类Dev

PHP-解析错误:语法错误,文件意外结束

来自分类Dev

PHP:解析错误:语法错误,文件意外结束

来自分类Dev

我收到解析错误:语法错误,文件意外结束

来自分类Dev

解析错误:语法错误、文件意外结束、期望变量

来自分类Dev

解析错误:语法错误,文件意外结束问题

来自分类Dev

语法错误:意外的keyword_ensure,预期输入结束

来自分类Dev

未捕获的语法错误:JSON.parse 处的 JSON 输入意外结束

来自分类Dev

PHP:解析错误:语法错误,意外的$ end输入

来自分类Dev

语法错误“语法错误,意外的输入结束,需要keyword_end(SyntaxError)”

来自分类Dev

语法错误“语法错误,意外的输入结束,需要keyword_end(SyntaxError)”

来自分类Dev

从Express应用返回JSON:未捕获(承诺)语法错误:输入意外结束

来自分类Dev

从Express应用返回JSON:未捕获(承诺)语法错误:输入意外结束

来自分类Dev

.bashrc:语法错误:文件意外结束

来自分类Dev

bash:语法错误:文件意外结束

来自分类Dev

.bashrc语法错误:文件意外结束

来自分类Dev

.bashrc:语法错误:文件意外结束

来自分类Dev

PHP:解析错误:语法错误,意外

来自分类Dev

PHP解析错误:语法错误,意外''

来自分类Dev

解析错误:语法错误,意外的'}'

来自分类Dev

解析错误:语法错误,意外的[

来自分类Dev

PHP解析错误:语法错误,意外的'['

来自分类Dev

解析错误:语法错误,意外的'}',期望','或';' 在 /

Related 相关文章

  1. 1

    错误:语法错误:JSON输入意外结束

  2. 2

    Angular 2 / Web Api-json解析错误语法错误输入意外结束

  3. 3

    未捕获的语法错误:JSON 输入意外结束 [}

  4. 4

    语法错误,意外的':',期望输入结束

  5. 5

    语法错误:意外的输入结束

  6. 6

    解析错误:语法错误,文件意外结束

  7. 7

    PHP解析错误:语法错误,文件意外结束,应为“`”

  8. 8

    PHP-解析错误:语法错误,文件意外结束

  9. 9

    PHP:解析错误:语法错误,文件意外结束

  10. 10

    我收到解析错误:语法错误,文件意外结束

  11. 11

    解析错误:语法错误、文件意外结束、期望变量

  12. 12

    解析错误:语法错误,文件意外结束问题

  13. 13

    语法错误:意外的keyword_ensure,预期输入结束

  14. 14

    未捕获的语法错误:JSON.parse 处的 JSON 输入意外结束

  15. 15

    PHP:解析错误:语法错误,意外的$ end输入

  16. 16

    语法错误“语法错误,意外的输入结束,需要keyword_end(SyntaxError)”

  17. 17

    语法错误“语法错误,意外的输入结束,需要keyword_end(SyntaxError)”

  18. 18

    从Express应用返回JSON:未捕获(承诺)语法错误:输入意外结束

  19. 19

    从Express应用返回JSON:未捕获(承诺)语法错误:输入意外结束

  20. 20

    .bashrc:语法错误:文件意外结束

  21. 21

    bash:语法错误:文件意外结束

  22. 22

    .bashrc语法错误:文件意外结束

  23. 23

    .bashrc:语法错误:文件意外结束

  24. 24

    PHP:解析错误:语法错误,意外

  25. 25

    PHP解析错误:语法错误,意外''

  26. 26

    解析错误:语法错误,意外的'}'

  27. 27

    解析错误:语法错误,意外的[

  28. 28

    PHP解析错误:语法错误,意外的'['

  29. 29

    解析错误:语法错误,意外的'}',期望','或';' 在 /

热门标签

归档