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