gpt4 book ai didi

json - Spring Boot Ajax 解析错误 - 无法将对象返回给 ajax 成功 fn

转载 作者:行者123 更新时间:2023-12-04 04:05:29 26 4
gpt4 key购买 nike

我正在通过 jquery ajax 调用向我的 spring Controller 发送一个值。我希望它发回一个对象以填充 iziModal 中的表单。目前,它将值从浏览器发送回我的 Controller ,并在我的 Controller 中运行我的方法,但后来我卡住了。出于某种原因,我在将响应发送回我的 ajax 成功函数时遇到问题。我收到此解析错误:SyntaxError:JSON 中位置 1556482 的意外标记 t

这是我的 Controller 方法:

 @RequestMapping(value="/editCarrierAjax", method= RequestMethod.POST)
public @ResponseBody CarrierAppointment getCarrierDets (@RequestParam("data") String data, MasterCarrier masterCarrier, Model model) throws Exception{
CarrierAppointment carrierToEdit = carrierAppointmentRepository.findById(Long.parseLong(data));
model.addAttribute("carrierToEdit", carrierToEdit);
return carrierToEdit;
}

Ajax 调用:

            $('.trigger-edit-carrier').on('click', function(event){
var selectId = $(this).attr('value');
console.log(selectId);
var token = $("meta[name='_csrf']").attr("content");
console.log(token);
var header = "X-CSRF-TOKEN";
console.log(header);
$.ajax({
type: "POST",
url: "/editCarrierAjax",
data: {data:selectId},
dataType:"json",
cache: false,
timeout: 600000,
beforeSend: function(xhr) {
xhr.setRequestHeader(header, token);
console.log(header +", "+ token);
},
success: function(data, jqXHR){
console.log("success fn");
console.log(data);

},
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert("Status: " + textStatus); alert("Error: " + errorThrown);
}
});
});

我尝试添加此处提到的 Jackson 库 Convert a object into JSON in REST service by Spring MVC

但是还是会报错。知道如何修复此错误吗?

最佳答案

您的方法返回的数据似乎在解析 JSON 时出现问题。有时它是由于数据中的某些特殊字符而发生的。您可以尝试记录 carrierToEdit( System.out.println(carrierToEdit);) 在服务器端并看到它的值(value)?可能它会是非常大的字符串内容和 id 你把它放在任何文本编辑器中并转到位置 1556482 你会看到导致这个的 t...

语法错误:JSON 中位置 1556482 处的意外标记 t

此外,如果您的数据不敏感,您可以尝试使用一些 JSON 验证器工具(如 https://jsonlint.com/)在线验证它。

您可以在那里找到问题,数据/代码中的一些小改动将解决您的解析问题...

     @RequestMapping(value="/editCarrierAjax", method= RequestMethod.POST)
public @ResponseBody CarrierAppointment getCarrierDets (@RequestParam("data") String data, MasterCarrier masterCarrier, Model model) throws Exception{
CarrierAppointment carrierToEdit = carrierAppointmentRepository.findById(Long.parseLong(data));
System.out.println(carrierToEdit);

model.addAttribute("carrierToEdit", carrierToEdit);
return carrierToEdit;
}

希望这对您有所帮助...一切顺利 :)

关于json - Spring Boot Ajax 解析错误 - 无法将对象返回给 ajax 成功 fn,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62566385/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com