jquery ajax的error:200问题

阿凡行舟 2015-03-18 05:30:51
web环境:
软件:Dreamweaver CS5;
语言:jquery,php;
本地服务器:wampserver;(http://localhost)
数据库连接正常,可以使用ajax GET查询用户名是否存在。

出现问题:注册页面,ajax POST请求不能成功插入数据库.
问题截图:

点击注册按钮:

=============================================================
浏览器追踪:
Remote Address:[::1]:80
Request URL:http://localhost/yangwei/admin/zhuce.php
Request Method:POST
Status Code:200 OK
Request Headersview source
Accept:application/json, text/javascript, */*; q=0.01
Accept-Encoding:gzip,deflate
Accept-Language:zh-CN,zh;q=0.8
Connection:keep-alive
Content-Length:53
Content-Type:application/x-www-form-urlencoded; charset=UTF-8
Cookie:PHPSESSID=u1dqcsarob79jg52ls7phod7j4
Host:localhost
Origin:http://localhost
Referer:http://localhost/yangwei/user/zhuce.html
User-Agent:Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 Safari/537.36
X-Requested-With:XMLHttpRequest
Form Dataview sourceview URL encoded
sname:李四
pwd:123456
phone:13137773333
Response Headersview source
Cache-Control:no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Connection:Keep-Alive
Content-Length:1622
Content-Type:application/json;charset=utf-8
Date:Wed, 18 Mar 2015 09:21:45 GMT
Expires:Thu, 19 Nov 1981 08:52:00 GMT
Keep-Alive:timeout=5, max=100
Pragma:no-cache
Server:Apache/2.4.9 (Win32) PHP/5.5.12
X-Powered-By:PHP/5.5.12

=================================================================
本地代码:
js页:
$(document).ready(function(){
//注册
$("#zhuce").click(function(){
$.ajax({
type:"POST",
url:"../admin/zhuce.php",
dataType:"json",
data:{
"sname":$("#sname").val(),"pwd": $("#pwd").val(),"phone":$("#phone").val(),
},
success:function(data){
if(data.success){
$("#vzhuce").html(data.msg);
setTimeout(function(){window.location="../index.php";},3000);
}else{
$("#vzhuce").html("error: "+data.msg);
}
},
error:function(jqXHR){
alert("发生错误: "+jqXHR.status);
},
});
});
});

后台PHP页:
//注册
function zhuce()
{
header("Content-type:application/json;charset=utf-8");
$sname = trim($_POST["sname"]);
$pwd = trim($_POST["pwd"]);
$phone = trim($_POST["phone"]);
if(!isset($sname) || empty($sname)
||!isset($pwd) || empty($pwd)
||!isset($phone) || empty($phone))
{
echo '{"success":false,"msg":"输入参数不全"}';
return;
}
else{
$rs=mysql_query("INSERT INTO `tb_user`(`sname`, `pwd`, `phone`) VALUES ('$sname','$pwd','$phone')",$link);
if($rs)
{
$_SESSION['user']=$sname;
echo '{"success":true,"msg":"注册成功,即将进入首页!"}';
exit;
}
}
}


请问大神们,GET没错误,POST出错,这算怎么一回事呢?
...全文
502 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
阿凡行舟 2015-03-18
  • 打赏
  • 举报
回复
引用 5 楼 xuzuning 的回复:
1、去掉程序文件的 BOM 头 2、去掉 header("Content-type:application/json;charset=utf-8"); 最简单的判断方法是
$(document).ready(function(){
        //注册
        $("#zhuce").click(function(){
            $.ajax({
                type:"POST",
                url:"../admin/zhuce.php",
             // dataType:"json",
                data:{
                      "sname":$("#sname").val(),"pwd":  $("#pwd").val(),"phone":$("#phone").val(),
                      },
                success:function(data){
                      alert(data);
                      if(data.success){
                          $("#vzhuce").html(data.msg);
                          setTimeout(function(){window.location="../index.php";},3000);
                          }else{
                          $("#vzhuce").html("error: "+data.msg);
                          }
                      },
                error:function(jqXHR){
                    alert("发生错误: "+jqXHR.status);
                      },
                });
            });
    });
去掉了header,补上链接数据库语句,就对了!
xuzuning 2015-03-18
  • 打赏
  • 举报
回复
1、去掉程序文件的 BOM 头 2、去掉 header("Content-type:application/json;charset=utf-8"); 最简单的判断方法是
$(document).ready(function(){
        //注册
        $("#zhuce").click(function(){
            $.ajax({
                type:"POST",
                url:"../admin/zhuce.php",
             // dataType:"json",
                data:{
                      "sname":$("#sname").val(),"pwd":  $("#pwd").val(),"phone":$("#phone").val(),
                      },
                success:function(data){
                      alert(data);
                      if(data.success){
                          $("#vzhuce").html(data.msg);
                          setTimeout(function(){window.location="../index.php";},3000);
                          }else{
                          $("#vzhuce").html("error: "+data.msg);
                          }
                      },
                error:function(jqXHR){
                    alert("发生错误: "+jqXHR.status);
                      },
                });
            });
    });
阿凡行舟 2015-03-18
  • 打赏
  • 举报
回复
不知道是编码的问题,还是跨域的问题。请大家参考下面的信息

阿凡行舟 2015-03-18
  • 打赏
  • 举报
回复
引用 2 楼 starfd 的回复:
你返回带下括号看看呢
'({"success":true,"msg":"注册成功,即将进入首页!"})'
添上括号就更错了,输入空数据json就没用了,去掉就好了。
  • 打赏
  • 举报
回复
你返回带下括号看看呢
'({"success":true,"msg":"注册成功,即将进入首页!"})'
  • 打赏
  • 举报
回复
200不是ok吗?怎么会是异常?是不是你返回的数据格式不是json格式,无法转换?

87,907

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧