0

我使用 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();

任何帮助将不胜感激。

4

1 回答 1

1
if(typeof response != 'undefined')

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

变量的存在并不意味着它不能存在null。在这里,response被定义/存在,但它是null. 当你说:

if(response.hasOwnProperty('status'))

你尝试调用hasOwnProperty一个空值,因此你得到了那个异常。你必须这样做:

if (response !== null && response.hasOwnProperty(..)) { ... }
于 2013-04-13T04:10:00.497 回答