errorHandling Module v1.1.0
AJAXの際にサーバからStatusをハンドリングしてstatusとresを返すモジュール
/**
* errorHandling Module Description v1.1.0
* @fileoverview エラーハンドリングしてstatusとresを返すモジュール
* 対応ブラウザはモダンブラウザ(IE8以上)
* @return {Object}
* {String} status - 'success'/'serverError'/'networkError'
* {Object} res - data.responseJSONかJSONパースされたdata.responseText
*/
var errorHandling = (function () {
var NETWORK_ERROR = '通信エラーです';
/**
* Entry point
* @param {Object} data - statusなどを含んだAPIからのレスポンス
*/
var getResponse = function (data) {
var status = '';
var res = (data.responseJSON) ? data.responseJSON : JSON.parse(data.responseText);
if(data.status === 200){
if(res.apiStatus === 'success') { //* res.apiStatusの部分はAPIの仕様に合わせる */
//* 通信成功の場合 */
status = 'success';
}else if(res.apiStatus ==='error'){
//* サーバーエラーの場合 */
status = 'serverError';
//* alert(res.message); // res.messageの部分はAPIの仕様に合わせる */
}
}else{
//* 通信エラーの場合 */
status = 'networkError';
alert(NETWORK_ERROR);
}
return {
status:status,
res:res
};
};
return { getResponse: getResponse };
})();
$.ajax({
type: 'get',
url: url,
data: data
}).always(function(data){
var response = errorHandling.getResponse(data);
var res = response.res;
var status = response.status;
if(status === 'success'){
// success
console.log('res');
}else if(status === 'serverError'){
// serverError
console.log('res');
}else{
// error
console.log('res');
}
return this;
});