我使用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();
非常感谢任何帮助。
答案 0 :(得分:1)
if(typeof response != 'undefined')
这意味着:“是否有一个名为'响应'的变量?”。由于您将其作为函数参数接收,因此是/存在一个名为response
的变量。
变量的存在并不意味着它不能是null
。此处response
已定义/存在,但它是null
。当你说:
if(response.hasOwnProperty('status'))
您尝试在空值上调用hasOwnProperty
,因此您会得到该异常。你必须这样做:
if (response !== null && response.hasOwnProperty(..)) { ... }