ajax一直返回 error
2017-12-27 13:32
316 查看
刚才在用的 springmvc + ajax 实现点赞功能不刷新更新数据的时候,ajax 返回一直是 error。
经过百度后,发现原因是 dataType 和实际返回值类型不一致。
<script type="text/javascript">
function like() {
document.cookie="articleId=${articleCustom.articleId};path=/";
$.ajax({
async: false,
type:"POST",
url:"${pageContext.request.contextPath}/like",
data: {count:${articleCustom.articleLikeCount}},
dataType:"text",
success:function (data) {
$(".count").html(data);
// alert("点赞成功");
},
error:function()
{
alert("获取数据出错!");
},
});
}
</script>
<a href="javascript:;"onclick="like()">
<i class="fa fa-thumbs-up"></i>赞
<i class="count">${articleCustom.articleLikeCount}</i>
</a>
控制器代码如下(忽略可重复点击)
//点赞
@RequestMapping(value = "/like",method = {RequestMethod.POST})
@ResponseBody
public Integer testCookie(@CookieValue(value="articleId",required=false) Integer articleId) throws Exception {
System.out.println(articleId+","+age);
ArticleCustom articleCustom = articleService.getArticleById(articleId);
int articleCount = articleCustom.getArticleLikeCount();
articleCustom.setArticleLikeCount(articleCount + 1);
articleService.updateArticle(articleId, articleCustom);
return articleCount+1;
}
注意:这里要一定加 @ResponseBody ,如果返回字符串,会认为是路径,而不是值。
经过百度后,发现原因是 dataType 和实际返回值类型不一致。
String dataType 预期服务器返回的数据类型。如果不指定,jQuery 将自动根据 HTTP 包 MIME 信息来智能判断,比如XML MIME类型就被识别为XML。在1.4中,JSON就会生成一个JavaScript对象,而script则会执行这个脚本。随后服务器端返回的数据会根据这个值解析后,传递给回调函数。可用值: "xml": 返回 XML 文档,可用 jQuery 处理。 "html": 返回纯文本 HTML 信息;包含的script标签会在插入dom时执行。 "script": 返回纯文本 JavaScript 代码。不会自动缓存结果。除非设置了"cache"参数。'''注意:'''在远程请求时(不在同一个域下),所有POST请求都将转为GET请求。(因为将使用DOM的script标签来加载) "json": 返回 JSON 数据 。 "jsonp": JSONP 格式。使用 JSONP 形式调用函数时,如 "myurl?callback=?" jQuery 将自动替换 ? 为正确的函数名,以执行回调函数。 "text": 返回纯文本字符串
本例代码如下
article.jsp 代码<script type="text/javascript">
function like() {
document.cookie="articleId=${articleCustom.articleId};path=/";
$.ajax({
async: false,
type:"POST",
url:"${pageContext.request.contextPath}/like",
data: {count:${articleCustom.articleLikeCount}},
dataType:"text",
success:function (data) {
$(".count").html(data);
// alert("点赞成功");
},
error:function()
{
alert("获取数据出错!");
},
});
}
</script>
<a href="javascript:;"onclick="like()">
<i class="fa fa-thumbs-up"></i>赞
<i class="count">${articleCustom.articleLikeCount}</i>
</a>
控制器代码如下(忽略可重复点击)
//点赞
@RequestMapping(value = "/like",method = {RequestMethod.POST})
@ResponseBody
public Integer testCookie(@CookieValue(value="articleId",required=false) Integer articleId) throws Exception {
System.out.println(articleId+","+age);
ArticleCustom articleCustom = articleService.getArticleById(articleId);
int articleCount = articleCustom.getArticleLikeCount();
articleCustom.setArticleLikeCount(articleCount + 1);
articleService.updateArticle(articleId, articleCustom);
return articleCount+1;
}
注意:这里要一定加 @ResponseBody ,如果返回字符串,会认为是路径,而不是值。
相关文章推荐
- ajax请求返回数据成功但是一直进入error方法中
- Jquery $.ajax 莫名其妙出错(Firefox下一直到error,返回结果又正常)
- 用 ajaxFileUpload 出现的问题:has no method 'handleError'、返回json数据提示下载 、一直返回error
- springmvc中 ajax请求错误,返回406,并一直进入error的回调方法,以及返回参数为Object
- JQuery ajax请求一直返回Error(parsererror)
- ajax请求返回结果进入success还是error
- ajax请求返回结果进入error原因
- ajax请求不等服务器返回直接进入error
- AJAX请求状态码返回200却跳到error的function
- thinkphp方法success和error跳转时间以及返回ajax
- ajaxFileUpload 返回的 数据格式并非json 导致返回函数转向error
- Servlet 与 Ajax 交互一直报status=parsererror
- ios点击微信公众账号返回按钮时,一个ajax报error的解决过程及总结(ios物理返回及ajax设置)
- 关于ajax——返回为200却到error页面,同步ajax页面跳转不成功
- 在ios9下,使用afnetworking执行http请求(http://apitest.XXX.com/Login),但是一直返回的是error
- Servlet 与 Ajax 交互一直报status=parsererror
- ajax交互成功后数据返回到error方法中 (前端/PHP)
- jquery中使用ajax发送post请求返回数据在error中
- 关于jQuery ajax 状态码status为0,一直返回error
- jsp学习笔记(十一):在jsp用ajax请求微信接口时,返回错误,提示status:0,statusText:error