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

简介:

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

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

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

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

参数描述

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

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

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

dataType

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

示例:

1
2
3
4
5
6
7
8
                 $.post( "../../xxx/ajaxPost.aspx" ,
                     {
                         action:  "xxx" ,
                         id: xxx
                     }, function  (data,status) {
                         alert( "name=" +data.name+ ",age=" +data.age);
                     },
             "json" );

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

后来终于终于

后台:

1
2
3
             result =  "{\"name\":\"Michael Jordan\",\"age\":\"51\"}" ;
             Response.Write(result);
             Response.End();

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

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

运行截图:

wKiom1QX7aPzY_pEAABX7owqAEY157.jpg










本文转自 我不会抽烟 51CTO博客,原文链接:http://blog.51cto.com/zhouhongyu1989/1553324,如需转载请自行联系原作者

目录
相关文章
|
5月前
|
JavaScript 前端开发
jquery中有.post,.get,$.getJSON为什么没postJSON
jquery中有.post,.get,$.getJSON为什么没postJSON
|
4月前
|
JSON 前端开发 Java
利用Spring Boot处理JSON数据实战(包括jQuery,html,ajax)附源码 超详细
利用Spring Boot处理JSON数据实战(包括jQuery,html,ajax)附源码 超详细
58 0
|
3月前
|
Web App开发 前端开发
Chrome 浏览器插件 V3 版本 Manifest.json 文件中 Action 的类型(Types)、方法(Methods)和事件(Events)的属性和参数解析
Chrome 浏览器插件 V3 版本 Manifest.json 文件中 Action 的类型(Types)、方法(Methods)和事件(Events)的属性和参数解析
154 0
|
4月前
|
JSON 数据格式
SpringMVC-接收请求中的json数据及日期类型参数传递
SpringMVC-接收请求中的json数据及日期类型参数传递
51 0
|
4月前
|
XML JSON Java
Android App网络通信中通过okhttp调用HTTP接口讲解及实战(包括GET、表单格式POST、JSON格式POST 附源码)
Android App网络通信中通过okhttp调用HTTP接口讲解及实战(包括GET、表单格式POST、JSON格式POST 附源码)
162 0
|
1月前
|
JSON 数据格式
糊涂工具类(hutool)post请求设置body参数为json数据
糊涂工具类(hutool)post请求设置body参数为json数据
31 1
|
3月前
|
JSON 关系型数据库 MySQL
这个问题是由于Flink的Table API在处理MySQL数据时,将MULTISET类型的字段转换为了JSON格式
【1月更文挑战第17天】【1月更文挑战第84篇】这个问题是由于Flink的Table API在处理MySQL数据时,将MULTISET类型的字段转换为了JSON格式
34 1
|
4月前
|
SQL JSON 关系型数据库
【SQL编程】MySQL 5.7.28 版本使用 SQL 直接解析 JSON 字符串(判断是否是合法JSON类型+文本深度+文本长度+值类型+keys获取+值获取+不同深度数据获取)
【SQL编程】MySQL 5.7.28 版本使用 SQL 直接解析 JSON 字符串(判断是否是合法JSON类型+文本深度+文本长度+值类型+keys获取+值获取+不同深度数据获取)
50 0
|
4月前
|
JSON 前端开发 JavaScript
JS前端读取本地上传的File文件对象内容(包括Base64、text、JSON、Blob、ArrayBuffer等类型文件)
JS前端读取本地上传的File文件对象内容(包括Base64、text、JSON、Blob、ArrayBuffer等类型文件)
|
4月前
|
JSON 前端开发 PHP
dataType:'json'时post,总是调用error???附带php和json的一些坑
ajax是一个不错的东西 当dataType:'json'时提交,总是返回error 这是为什么? 经过折腾,终于发现因为要求的是json,返回的信息并不是json格式,因此总是出错
34 0