我尝试使用下面做一个跨域GET:为什么dojo.io.script.get()在接收404时执行提供的错误函数?
dojo.io.script.get({
url: myUrl,
callbackParamName: "callback",
preventCache: true,
load: dojo.hitch(this, loadFunction),
error: dojo.hitch(this, function() {
console.log('Error!!!');
})
});
负载功能运行正常,然而,当服务器返回404,误差函数不运行。谁能告诉我为什么?
编辑
经过一番研究,我发现,超时和处理程序可以通过以下方式实现:
dojo.io.script.get({
url: myUrl,
callbackParamName: "callback",
timeout: 2000
}).then(function(data){
console.log(data);
}, function(error){
alert(error);
});
这将使用由dojo.Deferred
对象提供的功能。
谢谢,尤金。我对dojo没有太多的经验,而且我从来没有用jQuery的jsonp插件来解决这个问题,所以这让我大吃一惊。我猜这个插件必须像你建议的一样检查 - 我将不得不采取仔细查看该代码。 – 2011-03-14 11:54:45