我目前正在开发一个新网站
当我尝试创建帐户时,我收到如下错误:
Uncaught TypeError: Cannot read property 'hasError' of null.
这是代码
function submitFunction()
{
$('#create_account_error').html('').hide();
//send the ajax request to the server
$.ajax({
type: 'POST',
url: baseUri,
async: true,
cache: false,
dataType : "json",
data: {
controller: 'authentication',
SubmitCreate: 1,
ajax: true,
email_create: $('#email_create').val(),
back: $('input[name=back]').val(),
token: token
},
success: function(jsonData)
{
if (jsonData.hasError())
{
var errors = '';
for(error in jsonData.errors)
//IE6 bug fix
if(error != 'indexOf')
errors += '<li>'+jsonData.errors[error]+'</li>';
$('#create_account_error').html('<ol>'+errors+'</ol>').show();
}
else
{
// adding a div to display a transition
$('#center_column').html('<div id="noSlide">'+$('#center_column').html()+'</div>');
$('#noSlide').fadeOut('slow', function(){
$('#noSlide').html(jsonData.page);
// update the state (when this file is called from AJAX you still need to update the state)
bindStateInputAndUpdate();
$(this).fadeIn('slow', function(){
document.location = '#account-creation';
});
});
}
},
error: function(XMLHttpRequest, textStatus, errorThrown)
{
alert("TECHNICAL ERROR: unable to load form.\n\nDetails:\nError thrown: " + XMLHttpRequest + "\n" + 'Text status: ' + textStatus);
}
});
}
它似乎是函数上的jsonData,它不能正常工作。有什么想法或建议吗?
答案 0 :(得分:2)
成功处理程序将传递从ajax请求返回的数据。
它不会有一个名为hasError()
的函数,因为它只是一个json对象,它没有任何函数。
如果存在http错误,即如果ajax调用返回http 500,则应触发错误处理程序。
我不熟悉prestashop,但查看prestashop documentation hasError会以bool(非函数)的形式返回,所以请尝试(不使用括号)。
if (jsonData.hasError)
您可能还想检查是否首先返回任何数据。
if (jsonData)