现在位置首页 / 前端开发 /正文

jQuery $.post()返回类型为json时不进入回调函数的原因及解决方法

作者: IT小兵 | 2014年9月16日| 热度:℃ | 评论: |参与:

这真是个让人特别抓心找挠肝的问题,真的差点被这个问题逼的放弃去使用json作为返回类型,而是去用html,但是有的时候就是要较汁一下。(即便现在问题解决了,我还是想说句“妈蛋”,来发泄一下)

其实主要还是自己对json的不够了解,但是很纳闷,网上对路的解决方法几乎没有。所以虽然问题很小,但是还是想要分享出来,希望能帮到需要的人。

首先$.post()格式如下:

$.post(url,data,success(data, textStatus, jqXHR),dataType)

参数描述

url
必需。规定把请求发送到哪个 URL。

data  
可选。映射或字符串值。基本是json格式。

success(data, textStatus, jqXHR)      
可选。请求成功时执行的回调函数。

dataType

可选。规定预期的服务器响应的数据类型。默认执行智能判断(xml、json、script 或 html)。

示例:

$.post(                    "../../xxx/ajaxPost.aspx",
                    {
                        action: "xxx",
                        id: xxx
                    },                    function (data,status) {
                        alert("name="+data.name+",age="+data.age);
                    },                    "json");


打断点可以正常进入到后台。直到想要的操作完成,组成新的json数据,利用htm = htm&()返回,但是无论如何也不走function()方法,之前有想到是json格式的问题,但是改了还是不行。

后来终于终于

后台:

            var result = "{\"name\":\"Michael Jordan\",\"age\":\"51\"}";
            htm = htm&(result);
            Response.End();

大家注意,都知道json的格式是{"key1”: "value1”, "key2”: "value2”} 这样(或者是把{}中的双引号变成单引号),但是在C#代码部分却是需要在引号(“”)前加上转义字符(\)的,否则永远走不到回调方法。

$.post()方法在以json作为返回类型的时候,是严格要求使用json格式才可以进入回调的。所以……

运行截图:


点击阅读本文所属分类的更多文章: 前端开发 。和高手一起交流:346717337
友荐云推荐

未注明转发、原文均为本站原创。分享本文请注明 原文链接

给您更多信息和帮助

在这里您可以找到更多:

技术交流群:346717337 Jquery插件交流

投稿:[email protected]

承接:企业网站门户/微网站/微商城/CMS系统/微信公众号运营/业务咨询

echarts教程系列
本月最热文章

微信扫一扫,徜徉悠嘻网,您的休闲乐园

微信公众号:快乐每一天

随机文章
标签

技术交流群:346717337

投稿:[email protected]

专业专注:企业网站门户/微网站/微商城/CMS系统/微信公众号运营/付费问题咨询