Javascript ajax响应数据未定义

Javascript ajax响应数据未定义,javascript,php,ajax,Javascript,Php,Ajax,我对ajax post submit有问题 这是我的剧本 function postad(actionurl) { if (requestRunning) return false ; if (! $("#editadform").valid()) { validator.focusInvalid(); return false ; } $('#ajxsave').show() ;

我对ajax post submit有问题 这是我的剧本

function postad(actionurl) {
        if (requestRunning) return false ;

        if (! $("#editadform").valid()) {
            validator.focusInvalid();
            return false ;
        }

        $('#ajxsave').show() ;
        requestRunning = true ;
        var postData = $('#editadform').serializeArray();
        $.ajax(
        {
            url : actionurl,
            type: "POST",
            data : postData,
            success:function(data, textStatus, jqXHR)
            {
                $('#diverrors').html(data.errors) ;
                $('#divalerts').html(data.alerts) ;

                if (data.status=='success') {  alert(data.status);
                  $('#siteid').val(data.siteid) ;
                  if ($('#adimager').val())
                    $('#divlmsg').html(data.alertimage) ;
                  $('#editadform').submit() ;

                } else {

                  $('#ajxsave').hide() ;
                }
            },
            error: function(jqXHR, textStatus, errorThrown)
            {
                $('#ajxsave').hide() ;
            },
            complete: function() {
                requestRunning = false;
            }
        });

        $('.btn').blur() // remove focus
        return false ;
    }
如果(textStatus='success'){

但当操作失败时,
警报(data.status)
显示未定义


使用FireBug,我可以看到返回的数据是正确的。为什么data.status是“未定义”的呢?

如果在jQuery中没有指定
$.ajax()
调用的
数据类型
字段,它会将响应格式化为纯文本。代码的一个解决方法是将
数据类型:“JSON”
包含到
$.ajax中()
参数,或者在
success
函数中,使用以下命令将纯文本响应解析为JSON对象:

data = JSON.parse(data); // You can now access the different fields of your JSON object
更新:


是的,我没有动作url中的
状态
字段,如何在php代码中添加数据状态字段

创建用于返回JSON数据的PHP脚本时,首先需要构建一个数组,然后将其编码为JSON

因此,假设您有一个PHP脚本,该脚本要么成功生成一些数据并将其放入
$data
变量,要么失败,那么可以采用以下样式:

<?php
    // ^^ Do your PHP processing here
    if($success) { // Your PHP script was successful?
        $response = array("status" => "success!", "response" => $data);
        echo json_encode($response);
    }
    else {
        $reponse = array("status" => "fail", "message" => "something went wrong...");
        echo json_encode($response);
    }
?>


如果您编写console.log(数据)您得到了什么?您尝试了哪种方法?另外,您的JSON是否实际返回了您认为的内容?可能是您的JSON对象没有
状态
字段?是的,我没有
状态
字段在动作url中,如何在php代码中添加数据状态字段?我将php文件头更改为:
头('Content-type:application/json');
问题已经解决,谢谢