diff --git a/src/baidu/ajax/request.js b/src/baidu/ajax/request.js index 4627d1b3..80674e57 100644 --- a/src/baidu/ajax/request.js +++ b/src/baidu/ajax/request.js @@ -56,7 +56,7 @@ baidu.ajax.request = function (url, opt_options) { var stat = xhr.status; } catch (ex) { // 在请求时,如果网络中断,Firefox会无法取得status - fire('failure'); + fire('failure',ex.message); return; } @@ -77,7 +77,7 @@ baidu.ajax.request = function (url, opt_options) { || stat == 1223) { fire('success'); } else { - fire('failure'); + fire('failure',stat); } /* @@ -136,8 +136,9 @@ baidu.ajax.request = function (url, opt_options) { * * @ignore * @param {String} type 事件类型 + * @param {String} msg 提示信息 */ - function fire(type) { + function fire(type,msg) { type = 'on' + type; var handler = eventHandlers[type], globelHandler = baidu.ajax[type]; @@ -149,7 +150,7 @@ baidu.ajax.request = function (url, opt_options) { } if (type != 'onsuccess') { - handler(xhr); + handler(xhr,msg); } else { //处理获取xhr.responseText导致出错的情况,比如请求图片地址. try { @@ -229,7 +230,7 @@ baidu.ajax.request = function (url, opt_options) { stateChangeHandler(); } } catch (ex) { - fire('failure'); + fire('failure',ex.message); } return xhr; diff --git a/test/baidu/ajax/request.js b/test/baidu/ajax/request.js index 842d6922..65ff0d29 100644 --- a/test/baidu/ajax/request.js +++ b/test/baidu/ajax/request.js @@ -237,3 +237,15 @@ test("ontimeout", function() { } }); }); + +var test404flag = false; +baidu.ajax.request('text.php', { + onfailure : function(xhr, msg) { + if(msg=='404'){ + test404flag = true; + }; + } +}); +test("请求失败获得错误信息提示", function() { + ok(test404flag,'返回信息是404'); +}); \ No newline at end of file