我嘗試使用下面做一個跨域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