我在进行ajax成功时遇到JSON解析SyntaxError:“ JSON.parse:错误的转义字符”的问题:要清楚,这是ajax代码:

 $("#ajaxform").submit(function(e) {
  $.ajax({
        url : '/cart/add',
        type : 'POST',
        contentType : 'application/x-www-form-urlencoded',
        data : $(this).serializeArray(),
        dataType: 'json',
        success : function(content) {
            $("#result").append(content.addToCartLayer);
            $.fancybox({
                href : '#result',
                showCloseButton : false,
                enableEscapeButton : false,
                hideOnOverlayClick:false
            });
        },
        error : function(xht, status, ex) {
            console.log("error : " + ex);//JSON.parse: bad escaped character
        }
    });


}

和Java代码是:

@RequestMapping(value = "/cart/add", method = RequestMethod.POST, produces = "application/json")
public String addToCart(@RequestParam("productCodePost") final String code, final Model model,
        @Valid final AusAddToCartForm form, final BindingResult bindingErrors, final RedirectAttributes redirectModel)
{
    // MY LOGIC HERE
    return ControllerConstants.Views.Fragments.Cart.AddToCartPopup;
}


好故事开始于在购物车中添加具有特定“ size = XL”和“ color = RED”的产品,直到我更改了颜色值(例如“ R'NB”和ajax异常)之前,一切都很好被抛出(JSON.parse:错误的转义字符)

我试图将@ResponseBody添加到我的方法中,但没有结果。

所以这是我的问题,如果您需要进一步说明,请告诉我

最佳答案

这是因为新颜色值中存在无效字符:“ R'NB”。 JSON无法处理'字符。
请在这里看看:How to solve JSON.parse: bad control character in string literal, in this code
希望这能回答您的问题。

09-10 07:51
查看更多