Javascript 如何很好地处理ajax解析器错误?

Javascript 如何很好地处理ajax解析器错误?,javascript,jquery,ajax,json,Javascript,Jquery,Ajax,Json,我有一个谷歌广告项目,它要求我从json文件上的对象数组(通过url)中获取多个“setTargeting(“”,”;”>{“国家”:“荷兰”,“城市”:“阿姆斯特丹”}。到目前为止一切正常;但是,假设网络失败,或者请求的JSON解析失败,等等-我想传递一个空数组,以确保插槽仍然显示没有目标的广告 什么样的练习比较好 advisions.cachedCategoriesByUrl={}; advisions.getCategories=函数(categoriesUrl){ var cached

我有一个谷歌广告项目,它要求我从json文件上的对象数组(通过url)中获取多个“setTargeting(“”,”;”>{“国家”:“荷兰”,“城市”:“阿姆斯特丹”}。到目前为止一切正常;但是,假设网络失败,或者请求的JSON解析失败,等等-我想传递一个空数组,以确保插槽仍然显示没有目标的广告

什么样的练习比较好

advisions.cachedCategoriesByUrl={};
advisions.getCategories=函数(categoriesUrl){
var cachedCategories=广告。cachedCategoriesByUrl[categoriesUrl];
if(缓存类别){
返回缓存的类别;
}否则{
var getCategories=$.ajax({
url:categoriesUrl,
数据:{格式:'json'},
错误:函数(jqXHR、状态、thrownError){
=>我想传递一个空数组,以便插槽显示
没有目标设定的广告。
然而,这似乎不起作用。
我需要回拨吗?
}
});
adverties.cachedCategoriesByUrl[categoriesUrl]=getCategories;
返回类别;
}
}
解决了这个问题:

$.ajax({
url:ad.categoriesUrl
}).then(功能(数据){
广告。广告时段(广告,数据);
},函数(数据){
数据={};
广告。广告时段(广告,数据);
});解决了这个问题:

$.ajax({
url:ad.categoriesUrl
}).then(功能(数据){
广告。广告时段(广告,数据);
},函数(数据){
数据={};
广告。广告时段(广告,数据);

});
您是否正在使用
jqXHR
对象执行其他操作?为什么要存储它(
getCategories
)?我需要getCategories来获取要在slot函数中传递的类别,以便“setTargeting”可以与json文件中定义的类别一样多。我更新了
jqXHR.responseText='{}'错误,但谷歌似乎没有得到更新的数组。这就是为什么我认为我需要做回拨什么的。。(很抱歉,我是新手)您是否知道上一次
返回getCategories在ajax请求完成之前正在运行?在这种情况下,我应该执行回调吗?您是否正在使用
jqXHR
对象执行其他操作?为什么要存储它(
getCategories
)?我需要getCategories来获取要在slot函数中传递的类别,以便“setTargeting”可以与json文件中定义的类别一样多。我更新了
jqXHR.responseText='{}'错误,但谷歌似乎没有得到更新的数组。这就是为什么我认为我需要做回拨什么的。。(很抱歉,我是新手)您是否知道上一次
返回getCategories在您的ajax请求完成之前运行?在这种情况下,我应该执行回调吗?我认为这总是显示无区域广告,即使区域回调有效。我认为这总是显示无区域广告,即使区域回调有效。