我在进行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
希望这能回答您的问题。