js代码:
$.ajax({ url:'http://www.mysite.com:8088/ajax/register.php', type:'post', dataType:'json', data:$('#form').serialize(), beforeSend:function(){ if($('.name' ).val()=='') { $('p').text('用户名不能为空!').show().delay(2000).fadeOut(); return false; } if($('.pass' ).val()==''){ $('p').text('密码不能为空!').show().delay(2000).fadeOut(); return false; } if($('.repass' ).val()!=$('.pass' ).val()){ $('p').text('两次输入的密码不同!').show().delay(2000).fadeOut(); return false; } if($('.code').val()!=code){ $('p').text('验证码不正确!').show().delay(2000).fadeOut(); return false; } console.log($('#form').serialize()); // 添加禁止项 _this.addClass('disabled'); _this.val('正在提交...'); }, success: function (data) { alert(data); //location.href = 'http://www.mysite.com'; //alert(data.msg); }, error:function(XMLHttpRequest, textStatus, errorThrown){ alert(XMLHttpRequest.status); alert(XMLHttpRequest.readyState); alert(textStatus); alert(errorThrown) console.log('错误啦'); }, complete: function () { _this.removeClass('disabled'); _this.val('立即注册'); } });
register.php 代码:
<?php header('Content_Type:text/html;charset=UTF-8'); $arr = array( 'code'=>10001, 'msg'=>'注册成功', ); echo json_encode($arr); sleep(3); ?>
表单提交后ajax执行到error
alert(XMLHttpRequest.status);
alert(XMLHttpRequest.readyState);
alert(textStatus);
alert(errorThrown)
这几项分别为0,0,timeout,timeout
网上说是跨域的问题,但是我这个设计不到啊,为啥XMLHttpRequest对象没有初始化
header('Content_Type:text/html;charset=UTF-8');
既然ajax
中datatype
定义返回的是json
,这个函数的定义返回的应该也是json
吧!
url:'http://www.mysite.com:8088/ajax/register.php',
修改为:
url:'/ajax/register.php',
试试,看下能不能正常访问。
避免ajax
和form
表单重复提交。就是Form
标签指定了url
,methon
,以及使用<input type="submit" value="提交"/>
的标签。
可以尝试排查一下。没学过php
,个人拙见。
这样子也解决不了,可能还不是出错原因吧,谢谢啦,最近在忙其他事情,暂时搁置了