由于某些原因,此代码给了我一个未捕获的异常错误。看起来catch块没有捕捉到错误。是否尝试将catch块的作用域限制为我不能在嵌套函数中抛出错误,然后期望它被作用域更高的catch语句捕获?我正在使用的应用程序中的一些敏感数据已被删除,但它预期leadInfo [0/1]将是我从URL参数中提取的32个字符的字母数字字符串。Catch语句不会抛出错误
这里的底层问题是我的AJAX调用从API返回一个错误,并且错误在应用程序中没有正确处理。因此需要throw语句。 AJAX调用完成正常,并返回一个不包含电子邮件地址的JSON对象作为属性,所以我需要以改变页面的方式来处理它以反映这一点。
jQuery(document).ready(function(){
try {
url = "http://api.com/api/v1/lead/" + leadInfo[1]
jQuery.ajax({
type: 'GET',
contentType: 'application/json',
url: url,
dataType : 'jsonp',
success: function (result) {
result = jQuery.parseJSON(result);
if(!result.data.email){
throw ('New exception');
}
console.log(result);
jQuery('.email').html(result.data.email);
}
});
jQuery('.surveryButton').click(function(){
window.location.replace("http://" + pgInventory.host + pgInventory.path + leadInfo[0] + "&curLeadId=" + leadInfo[1] + "&curViewedPages=0");
});
}
catch(err) {
jQuery('.email').html('your e-mail address');
jQuery('#arrowContent').remove();
}
});
它看起来像我对JSONP的调用稍微有所了解。我的印象是JSONP调用总是被迫为同步的,结果恰恰相反,它们总是被迫为异步的。现在这些信息已经解决了,这是完全合理的。谢谢你的快速反应! – Xenology 2013-05-01 11:05:54