jquery ajax jsonsuccess 怎么证明 请求成功了

温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
我爱你不是因为你是谁,而是我喜欢与你在一起的哪个我。togther forever~~!
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
阅读(177)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
loftPermalink:'',
id:'fks_087075',
blogTitle:'jquery ajax Post Get 例子登录验证(Success那个做的不怎么好)',
blogAbstract:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}问题:jQuery的$ajax请求成功后返回的是html标签+json 怎么拿到json那部分
描述:想在success里使用返回的json那部分数据(红色那部分)。这要咋调用啊。以前学习的时候都是类似data.statusCode这样来调用的。
但是 返回值中有html标签以后 貌似不行了。解决方案1:卧槽..这么奇葩的返回也是醉了。这是因为后台开启了 xdebug ,返回的 debug 信息搞的鬼,上上策是果断去找后台吐槽去吧。临时用的话可以自己做一下处理:var data = JSON.parse( data.replace(/&.*&/g, '') );
console.log( data.statusCode );
以上介绍了“jQuery的$ajax请求成功后返回的是html标签+json 怎么拿到json那部分”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:/itwd/1059145.html
上一篇: 下一篇:&&&&& 这几天一直被 ajax请求成功,返回了数据,但是不进success的问题困扰着,怎么弄就是解决不了,总以为是:$(document).ready(function(){});没起作用,一直找页面加载的方法来试,整了好几天没整出来....今天比较幸运,在网上找到了一篇关于这方面问题的文章,按上面的方法一试,果然ok了,哈哈哈,真是太高兴了....终于解决这个问题了。
这个问题的原因(来自/ajax/413061.html的拷贝内容):
--------------------------拷贝内容 start ----------------------------------------------------
“ & 1.状态码返回200--表明服务器正常响应了客户端的请求; &&&&& 2.通过firebug和IE的httpWatcher可以看出服务器端返回了正常的数据,并且是符合业务逻辑的数据。 & & & & && 但是,程序就是不进入到回调函数success: function(data){****}而是进入到error: function(data){***} & & 记得上次是因为存在跨域访问的问题导致。这次查看不存在跨域的问题。此时就很是不解。 &&&&&&&&& 事情的来源是这样的: 后台的配置管理模块中有一块是关于国际化的配置,增加国际化描述等等,查询国际化描述。 &&&&&&&& 问题的来源是在输入key='a' 查询前十条数据时发现可以正常的展现数据,但是当我输入key值为z时,并且再查询前20条数据是发现数据不能展现,但是server返回了数据库中的数据。这时第一反应是事不时数据返回的有问题,粗略的检查了返回的数据发现和第一次查询没有什么明显的区别。但是只查询第十四条数据时发现,显示不出来。这时候就开始怀疑了数据问题,进而到数据库中查找第十四条数据没有发现什么特别的地方。 &&&& 这时开始怀疑,难道是JS程序有处理数据兼容性有问题,觉得甚是不可思议。整了大约半小时,越来越觉得不大可能。就放弃了这种想法。 &&&& 有转向,重新审视数据。 但是发现数据从中间换行了,没太在意。 在纠结了一会儿后问一同事,指出数据可能多了一个"回车键",在其指点下到数据库表中再次查看该条数据发现有一个字段的值多了一个"回车键"。删除后,一切恢复正常。 &&&& 思考第一次和第二次碰到的问题,我初步认识到: &&& 1. 返回的数据类型一定要符合定义的数据类型。即如果你定义的 dataType 是 json 类型的,那么返回来的数据一定是 json 才可以,平且不然就会执行 error 里的程序块儿。 && (1) 同时需要特别的注意返回的JSON数据是否是严格的JSON格式. && (2) 也应该严重关切当后台返回的是一个List 数据(List当中的数据是Json格式)时,有没脏数据即不是严格的JSON格式。 &&& 很隐蔽的可能是数据某一个字段中在开始或末尾含有特殊字符,以"回车键"、"Tab键"等 &&& 这类隐蔽错误的规避措施就是好的编程习惯: a. 对于在页面填写入库的数据最好强制性的做,去空操作&利用客户端最好&。 b. 特殊的业务需注意特殊字符。 && 这样还不够,因为在开发过程中测试或开发人员自己在数据库中手动添加数据,可能会多加了空格等,导致程序调试,测试带来了麻烦。 这时就需要考虑在后台代码对获取的数据做处理。 &&&&& 2. 原因是ajax请求跨域了,解决方法是在两个文件里都添加一段 js: [/b]document.domain,或者采用Jsonp的方式,如我的前一篇blog中提到的。 还有一点对JQuery 中Ajax的一点其它的认识: 客户端发起请求,得到服务器端的相应是200,&正确拿到服务器响应的数据&没有问题.此时在判断进入success 对应的回调函数还是进入到error对应的回调函数之前,可能会校验一些东西: &&&&& 1. 返回的每条数据是否是dataType中定义的数据类型。如果有部分数据不是或者哪怕一条数据没有严格的按照dataType定义的类型,程序就会进入到error:function(){****} &&&&& 2. 请求的域和当前域是否是同一域,如果不是同一域也十分有可能进入error:function(){***}&& ”&
&---------------------------end --------------------------------------------------------------------------
&&& &&& 通过看了这段内容后,我再对照我的ajax 看了一遍,发现我少配了一个属性(dataType属性)因为我数据类型返回的是json类型,而我这边没有配dataType:'json',这一属性,所以导致出现了此问题。不过, 困扰我这么久的问题终于解决了,下次得万分小心才是,该配置的东西还是得配置,不能偷懒。
& 开源中国(OSChina.NET) |
开源中国社区(OSChina.net)是工信部
指定的官方社区【jQuery的Ajax请求,在success里无法获取数据】-突袭网
16:53:38【 转载互联网】 作者: &&|&责编:李强
&&& &为了解决用户可能碰到关于"jQuery的Ajax请求,在success里无法获取数据"相关的问题,突袭网经过收集整理为用户提供相关的解决办法,请注意,解决办法仅供参考,不代表本网同意其意见,如有任何问题请与本网联系。"jQuery的Ajax请求,在success里无法获取数据"相关的详细问题如下:jQueryajax直接在地址栏中输入有数据。但是通过ajax却获取不到数据$.ajax({type:&"post",&&&&&&&&&&&url:&"/smsmarketing/wwwroot/interface/postSendSms/",&&&contentType:&"application/x-www-form-urlencoded",//dataType:"json",&data:{&uid:&uid,&pwd:&md5pwd,mobile:&mobile,msg:&msg},&&&&success:function(result){&&&&&&&&alert(result);&&&&}});&应该是返回的类型不是json类型,大神帮忙看看怎么处理。jquery用的是1.2.6版本,高版本无法执行success,会执行error回调函数。===========突袭网收集的解决方案如下===========
解决方案1:&&&&&&&&url:&url,&&&&&&&&method:&'POST',&&&&&&&&contentType:&"application/json",&&&&&&&&data:&JSON.stringify(data),&&&&&&&&dataType:&'json',解决方案2:你这个代码是没问题的,你确定后台返回了数据或者数据类型没错?解决方案3:引用&1&楼&kadxls&的回复:&&&&&&&&url:&url,&&&&&&&&method:&'POST',&&&&&&&&contentType:&"application/json",&&&&&&&&data:&JSON.stringify(data),&&&&&&&&dataType:&'json',测试没有用。解决方案4:引用&2&楼&qq_&的回复:你这个代码是没问题的,你确定后台返回了数据或者数据类型没错?后台应该是有数据返回,在地址栏输入url带上提交的参数,是有数据返回的。解决方案5:引用&4&楼&qq125850&的回复:Quote: 引用&2&楼&qq_&的回复:你这个代码是没问题的,你确定后台返回了数据或者数据类型没错?后台应该是有数据返回,在地址栏输入url带上提交的参数,是有数据返回的。哪你把你传的值先去掉,让后端给你返回一个固定的值,看看能不能取到解决方案6:是不是因为我这个请求跨域了?Ajax其实就是向服务器发送一个GET或POST请求,然后取得服务器响应结果,返回客户端。跨域出现错误的地方正是请求到了数据,拿不回去。&解决方案7:引用&5&楼&qq_&的回复:Quote: 引用&4&楼&qq125850&的回复:Quote: 引用&2&楼&qq_&的回复:你这个代码是没问题的,你确定后台返回了数据或者数据类型没错?后台应该是有数据返回,在地址栏输入url带上提交的参数,是有数据返回的。哪你把你传的值先去掉,让后端给你返回一个固定的值,看看能不能取到我把传的值去掉了,直接调用地址,还是取不到值,是不是因为我这个请求跨域了?解决方案8:引用&7&楼&qq125850&的回复:Quote: 引用&5&楼&qq_&的回复:Quote: 引用&4&楼&qq125850&的回复:Quote: 引用&2&楼&qq_&的回复:你这个代码是没问题的,你确定后台返回了数据或者数据类型没错?后台应该是有数据返回,在地址栏输入url带上提交的参数,是有数据返回的。哪你把你传的值先去掉,让后端给你返回一个固定的值,看看能不能取到我把传的值去掉了,直接调用地址,还是取不到值,是不是因为我这个请求跨域了?有可能的。你百度搜一下ajax跨域解决方案9:alert可以执行说明ajax请求成功了,你在后台的接收处和发送处加一个打印,查看下解决方案10:引用&9&楼&qq_&的回复:alert可以执行说明ajax请求成功了,你在后台的接收处和发送处加一个打印,查看下没有后台,是纯靠前端页面执行的,最后发现这种方式行不通,改用服务端发起该http请求,ajax发送请求给后台页面&&后台页面在真正发送该请求,获取到数据后再返回到前台,进行数据的处理,最后显示其返回值。解决方案11:跨域了不能用js直接请求跨域地址,拿不到数据或者浏览器报错,需要在你站点做代理页面,代理页面用服务端xhr获取输出输出,ajax请求代理页面解决方案12:看你一开始说的,就是把POST和GET搞混了。你的后台接收方式应该是使用了only&Get的方法,所以只能通过URL传递参数的方式去Get(无论是在地址栏里输入得到,还是用AJAX的GET方法)。而你前台又非要用POST,所以就得不到结果了。这就是前台和后台“鸡同鸭讲”,应该使用共同的方式(或者让你的后台使用能够同时处理POST和GET传参的方法)。具体是让前台顺从后台,还是让后台顺应前台,你自己或和后台同事商量看着办。解决方案13:引用&11&楼&showbo&的回复:跨域了不能用js直接请求跨域地址,拿不到数据或者浏览器报错,需要在你站点做代理页面,代理页面用服务端xhr获取输出输出,ajax请求代理页面+1}

我要回帖

更多关于 jquery ajax json 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信