问题:Ajax的post请求后台,后台正常的回应,但是始终不执行success的回调函数
$.ajax({
async: true,
type: "POST",
data: JSON.stringify(request),
url: "http://localhost:8080/BlogWeb_war/personalCenterServlet",
dataType: 'json',
success: function (data) {
}
})
我后端返回的是一个"success"的字符串,问题就出在这!后来我加了error的回调函数发现error回调函数里的内容生效了。
原因是:dataType
预期服务器返回的数据类型。如果不指定类型,jQuery 将会自动根据 HTTP 包 MIME 信息来判断,比如XML MIME类型就被识别为XML。在1.4中,JSON就会生成一个JavaScript对象,而script则会执行这个脚本。随后服务器端返回的数据会根据这个值解析后,传递给回调函数。
总结:在设置dataType时一定要注意是否与后台返回的类型是否保持一致,否则解析器会错误!