【发布时间】:2020-10-15 09:09:31
【问题描述】:
我通过 jquery ajax 调用向我的 spring 控制器发送一个值。我希望它发回一个对象以填充 iziModal 中的表单。目前,它将值从浏览器发送回我的控制器,并在我的控制器中运行我的方法,但后来我卡住了。出于某种原因,我在将响应发送回我的 ajax 成功函数时遇到问题。 我收到此解析错误:SyntaxError: Unexpected token t in JSON at position 1556482
这是我的控制器方法:
@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
但它仍然会引发错误。知道如何解决此错误吗?
【问题讨论】:
-
您的 ajax 代码没有
dataType: "json"?您是否返回 json 响应? -
@Swati 如果我将 contentType 和 dataType 添加为 json,则会收到 400 错误请求错误。我只是想返回一个对象。我之前在不同的项目中使用过类似的 ajax/代码,它在那里工作,所以不确定这里有什么不好。
-
目前在您的代码中,您还没有将
carrierToEdit转换为 json,因为您的 ajax 正在接受 json ?你能用那个更新你的代码吗?然后检查console.log(data);显示什么?
标签: json ajax spring-boot izimodal