您的位置:首页 > 其它

ajax一直返回 error

2017-12-27 13:32 316 查看
刚才在用的 springmvc + ajax 实现点赞功能不刷新更新数据的时候,ajax 返回一直是 error。

经过百度后,发现原因是 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  ,如果返回字符串,会认为是路径,而不是值。

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: