为了账号安全,请及时绑定邮箱和手机立即绑定

Ajax异步请求处理问题

Ajax异步请求处理问题

红颜未知己 2015-12-19 14:46:43
要贴上代码吗?太长了。那我简单粗暴的描述下问题吧:在服务器中请求没有成功(代码中success没有通过,直接执行了errro的方法),但是在浏览器监听的时候,参数和响应一切都ok啊,为什么呢?没什么success没有通过呢以下局部代码:<h1>人物查询</h1> <label>请输入人物编号</label> <input type="text" id="keyword"> <button id="search">查询</button> <p id="searchResult"></p> <h1>员工创建</h1> <label>请输入人物姓名</label> <input type="text" id="staffName"><br> <label>请输入人物编号</label> <input type="text" id="staffNumber"><br> <label>请输入人物性别</label> <select id="staffSex"> <option>男</option> <option>女</option> </select><br> <label>请输入人物角色</label> <input type="text" id="staffJob"><br> <button id="save">保存</button> <p id="createResult"></p> $("#search").click(function(){         $.ajax({             type:"GET",             url:"jQuery.ajax.server.php?number="+$("#keyword").val(),             dataType:"json",             success:function(data){                 if(data.success == true){                     $("#searchResult").text(data.msg);                 }else{                     $("#searchResult").html("出现错误:"+data.msg);                     }                 },             error:function(jqXHR){                 alert("发生错误"+jqXHR.status);                 }             });         });     $("#save").click(function(){         $.ajax({             type:"POST",             url:"jQuery.ajax.server.php",             dataType:"json",             data:{                 name:$("#staffName").val(),                 number:$("#staffNumber").val(),                 sex:$("#staffSex").val(),                 job:$("#staffJob").val(),                 },             success:function(data){                 if(status.success == true){                     $("#createResult").html(data.msg);                 }else{                     $("#createResult").html("出现错误:"+data.msg);                     }             },             error:function(jqXHR){                 alert("发生错误"+jqXHR.status);                 }             })         })
查看完整描述

5 回答

已采纳
?
慕冬雪

TA贡献16条经验 获得超3个赞

额,PHP啊。。我其实不会,没接触过,但是, ERROR函数一般最常见的就是:访问后台程序错误,网络响应超时,还有就是success中的代码如果发生系统错误可能也会调error。你可以先在success中打印一下data,看看能不能正常接到参数,还有就是,你点save时

success:function(data){

                if(status.success == true){

                    $("#createResult").html(data.msg);

                }else{

                    $("#createResult").html("出现错误:"+data.msg);

                    }

            },

这段代码里的, if(status.success == true){这个是错误到, 改成 if(data.success == true){;

还有,看你后台,echo是向页面输出吧?输出内容里貌似没有success参数啊。。。(对php不是太懂,说的不对的地方望包涵)

查看完整回答
反对 回复 2015-12-19
  • 红颜未知己
    红颜未知己
    嗯...是的,昨晚我检查出来了。你说的没错,那个参数是我写错,还有一个就是我web客户端发送数据的格式是json,而服务器接收的格式是text/plain,两者格式冲突,自然会出差错;第三个,也是格式的问题,我服务器端的代码中echo输出格式也应为json,我写的是text格式。三个错误,只有参数写错的那个我花费时间最长。
  • 慕冬雪
    慕冬雪
    好的, 问题解决了就行, 我php不懂, 只能按照java的思想给你解释。。。
?
LUCK星001

TA贡献19条经验 获得超21个赞

//img1.sycdn.imooc.com//567622f30001174406860258.jpg

error 应该和success 同级吧!

查看完整回答
2 反对 回复 2015-12-20
  • 红颜未知己
    红颜未知己
    是的error是应该是success同级,在ajax的代码中,同级用逗号隔开。所以我这里没有问题
?
后之后觉

TA贡献17条经验 获得超1个赞

现在基本都用法$.post方法了建议用$.post

查看完整回答
反对 回复 2015-12-19
?
慕冬雪

TA贡献16条经验 获得超3个赞

error回调的执行有很多原因。你说请求响应都没问题,那建议你贴下action代码。

查看完整回答
反对 回复 2015-12-19
  • 5 回答
  • 1 关注
  • 2148 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信