weixin_33720956 2015-12-22 00:37 采纳率: 0%
浏览 26

提取Json响应

I am trying to to extract a Json response in jquery sent from a php file. This is the .js code:

    $.ajax({
 url: 'index.php?page=register', //This is the current doc
 type: 'POST',
 datatype: 'json',
 data: {'userCheck': username},
 success: function(data){
    // Check if username is available or not
 },
 error: function(){
    alert('Much wrong, such sad');
 }
});

This is the response from the php file:

    if($sth->fetchColumn()!=0){
        //$response = array("taken");
        $response = array("username"=>"taken");
        echo json_encode($response);
        //echo '{"username':'taken"}';
    }else{
        //$response = array("available");
        $response = array("username"=>"available");
        echo json_encode($response);
        //echo '{"username":"available"}';
    }

I have tried all combinations I can think of in both files, but nothing seems to work. It is a simple check for a username in the database. If I console log the data I get from the response, I get this:

    {"username":"available"}<!DOCTYPE html>
    // The rest of the page html

So the info is there, but how do I access it? I have tried several syntaxes found around the internet, but no luck so far. I seem to recall that a json response only can contain valid json, so is the problem the html? I don't think I can avoid this due to the structure of my application, so hopefully it is possible to access the json with my present structure.

  • 写回答

3条回答 默认 最新

  • weixin_33730836 2015-12-22 00:48
    关注

    in you Ajax

    EDIT:

    change

    datatype:"json",
    

    the case of parameter name was not respected, the t must be T

    dataType:"json",
    

    now retry please

    $.ajax
    ({
        url: 'index.php?page=register', //This is the current doc
        type: 'POST',
        dataType: 'json',
        data: {'userCheck': username},
        success: function(data)
        {
            // Check if username is available or not
            switch(data.username)
            {
                case "available":
                    // do you want
                    break;
                case "taken":
                    // do you want
                    break;
            }
        },
        error: function()
        {
            alert('Much wrong, such sad');
        }
    });
    

    in PHP

    simply that, and don't forget to exit; to avoid include html page in your json response ! This is the code coming after the }".... who break your json output and make it unreadable by javascript (worste, it simply break your javascript !)

    echo json_encode(["username"=> ($sth->fetchColumn()!=0) ? "taken":"available"]);
    exit;
    
    评论

报告相同问题?

悬赏问题

  • ¥200 csgo2的viewmatrix值是否还有别的获取方式
  • ¥15 Stable Diffusion,用Ebsynth utility在视频选帧图重绘,第一步报错,蒙版和帧图没法生成,怎么处理啊
  • ¥15 请把下列每一行代码完整地读懂并注释出来
  • ¥15 pycharm运行main文件,显示没有conda环境
  • ¥15 寻找公式识别开发,自动识别整页文档、图像公式的软件
  • ¥15 为什么eclipse不能再下载了?
  • ¥15 编辑cmake lists 明明写了project项目名,但是还是报错怎么回事
  • ¥15 关于#计算机视觉#的问题:求一份高质量桥梁多病害数据集
  • ¥15 特定网页无法访问,已排除网页问题
  • ¥50 如何将脑的图像投影到颅骨上