jQuery_jquery をカプセル化する Ajax リクエストのグローバル設定

WBOY
リリース: 2016-05-16 16:15:50
オリジナル
1430 人が閲覧しました

概要:

jQuery はプロジェクトで最も一般的な js ライブラリであり、フロントエンド開発でよく使用されるライブラリです。以下は、プロジェクト内の jQuery をカプセル化し、全員で共有する Ajax です。

コード:

コードをコピー コードは次のとおりです:

// ajaxリクエストパラメータ
var ajaxSettings = function(opt) {
var url = opt.url;
var href = location.href;
// クロスドメインリクエストがあるかどうかを判断します
var requestType = 'jsonp';
If (url.indexOf(location.host) > -1)
requestType = 'json';
requestType = opt.dataType || requestType;
// 非同期リクエストするかどうか
var async = (opt.async === 未定義 ? true : opt.async);
戻り値 {
URL: URL,
非同期: 非同期、
タイプ: opt.type || 'get',
データタイプ: requestType、
キャッシュ: false、
データ: opt.data,
成功: function(data, textStatus, xhr) {
/*
*dataType が json の場合、返されたデータが json 形式であるかどうかを確認するにはどうすればよいですか? そうでない場合は、変換します
* 成功データの共通フォーマット
* 「コード」: 200、
「データ」: []、
                                                                                                                                              * * 失敗時に返されるデータ
* 「コード」: 200、
"情報": 'エラー'、
“成功”: false // 失敗 * */
If((requestType === 'json' || requestType === "jsonp") && typeof(data) === "string") {
data = JSON.parse(data);
}
if(data.success) {
opt.success(data);
}

if(opt.error) {
opt.error(data);
}

},
        エラー: function(xhr, status, handler) {
            if (opt.error)
                opt.error();
        }
    };
};
関数 unescapeEntity(str) {
    var reg = /&(?:nbsp|#160|lt|#60|gt|62|amp|#38|quot|#34|cent|#162|ポンド|#163|円|#165|ユーロ|# 8364|セクト|#167|コピー|#169|reg|#174|トレード|#8482|回|#215|除算|#247);/g,
        エンティティ = {
        ' ' : ' ',
        ' ' : ' ',
        「<」     : '<'、
        '<' : '<',
        「>」     : '>'、
        '&62;'     : '>'、
        '&' : '&',
        '&' : '&',
        '"' : '"',
        '"' : '"',
        '¢' : '¢',
        '¢' : '¢',
        「£」 : 「£」、
        '£' : '£',
        '\' : '\',
        '\' : '\',
        '€' : '?'、
        '€' : '?'、
        '§' : '§',
        '§' : '§',
        '©' : '©',
        '©' : '©',
        '®' : '®',
        '®' : '®',
        '™' : '™',
        '™' : '™',
        '×' : '×',
        '×' : '×',
        '÷' : '÷',
        '÷' : '÷'
    };
    if (str === null) {
        '';
を返します     }
    str = str.toString();
    return str.indexOf(';') < 0 ? str : str.replace(reg, function(chars) {
        return エンティティ[chars];
    });
}
// 转换htmlの实体
$.ajaxSetup({
    グローバル : true、
    キャッシュ : false、
    コンバータ: {
        'テキスト json' : function(response){
            return jQuery.parseJSON(unescapeEntity(response));
        }
    }
});
/*
*Ajax 请求权限异常
* 用户权制限错误跳转登陆页
* 404错误跳转404页面
 */
$(document).ajaxComplete(function(evt, req, settings){
    if(req && req.responseJSON){
        var json = req.responseJSON;
        if(json.code === 403 && json.info === 'パーマエラー' && !json.success){
            window.location.href = location.protocol '//' location.hostname;
            戻る;
        }
        if(json.code === 404 && !json.success) {
window.location.href = location.protocol '//' location.hostname '/404.html';
}
}
});
/*
*Ajax リクエストのエラー メッセージ
※例:500エラー
*返されるエラーメッセージの形式
*{
* コード: 500、
* 情報: システム例外
*}
*/
$(document).ajaxError(function(evt, req, settings){
If(req && (req.status === 200||req.status === 0)){ return false }
var msg = 'エラー:';
If(req && req.responseJSON){
var json = req.responseJSON;
msg = json.code||'';
msg = json.info||'システム例外が発生しました。もう一度お試しください';
}その他{
msg = 'システム例外。もう一度お試しください';
}
アラート(メッセージ);
});

概要:

Ajax リクエストを実行するときは、次のように ajaxSettings 関数を呼び出すだけです。

コードをコピーします コードは次のとおりです:

$.ajax(ajaxSettings({
URL: ''、
データ: ''
}))

以上がこの記事の全内容です。皆さんに気に入っていただければ幸いです。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート