检查jQuery Ajax是否有响应

时间:2013-04-13 03:38:33

标签: jquery typeerror hasownproperty

我使用jQuery Ajax函数在WordPress主题上安装一些演示数据。下面的这个脚本已经处理了我以前的主题,但是由于某些原因我现在收到了错误

Uncaught TypeError: Cannot call method 'hasOwnProperty' of null

这是我正在使用的脚本

/* Install Dummy Data */
function install_dummy() {
    $('#install_dummy').click(function(){
    $.ajax({
            type: "post",
            url: $AjaxUrl,
            dataType: 'json',
            data: {action: "install_dummy", _ajax_nonce: $ajaxNonce},
            beforeSend: function() {
                $(".install_dummy_result").html('');
                $(".install_dummy_loading").css({display:""});
                $(".install_dummy_result").html("Importing dummy content...<br /> Please wait, this process can take up to a few minutes.");                    
            }, 
            success: function(response){ 
                var dummy_result = $(".install_dummy_result");
                if(typeof response != 'undefined')
                {
                    if(response.hasOwnProperty('status'))
                    {
                        switch(response.status)
                        {
                            case 'success':
                                    dummy_result.html('Dummy Data import was successfully completed');
                                break;
                            case 'error':
                                    dummy_result.html('<span style="color:#f00">'+response.data+'</span>');
                                break;
                            default:
                                break;
                        }

                    }
                }
                $(".install_dummy_loading").css({display:"none"});
            }
        }); 

    return false;
    });
}
install_dummy();

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

if(typeof response != 'undefined')

这意味着:“是否有一个名为'响应'的变量?”。由于您将其作为函数参数接收,因此是/存在一个名为response的变量。

变量的存在并不意味着它不能是null 。此处response已定义/存在,但它是null。当你说:

if(response.hasOwnProperty('status'))

您尝试在空值上调用hasOwnProperty,因此您会得到该异常。你必须这样做:

if (response !== null && response.hasOwnProperty(..)) { ... }