修改jquery $ .get函数响应

时间:2014-09-18 09:26:37

标签: javascript jquery ajax

在我的项目中,我在许多情况下使用了$.get函数:

$.get(user, function (data) {
   // CODE
});

现在,我想将其修改为:

   $.get(user, function (data) {
         if (validate_data(data)){
             // CODE
         }
    });

但是不可能去项目中的每个javascript文件并修改所有实例。是否可以修改jquery.js文件以获得相同的结果?

4 个答案:

答案 0 :(得分:2)

您可以使用

拉取某些内容
$.ajaxComplete(function(data) { ... } )

答案 1 :(得分:1)

据我所知,您可以在成功之前处理数据并使用throw来停止脚本。不是最好的解决方案,但应该有效。

jQuery.ajaxSettings.dataFilter = function(response, type){
    if (!validate_data(response)){
        throw "Stop!";
    }
    return response;
}

答案 2 :(得分:1)

我认为最简单的方法是扩展jQuery(未经测试):

jQuery.fn.extend({
    get_validated: function(url, callback) {
        return $.get(url, function(data) {
            if(validateData(data)) {
                callback(data);
            }
        }
    }
});

然后在IDE中使用get替换get_validated replace in files的每个场合。

答案 3 :(得分:1)

您可以使用ajaxComplete将回调函数附加到ajax请求,如下所示

$( document ).ajaxComplete(function( event, xhr, settings ) {
  if ( settings.url === "MY GET URL" ) { //IF URL matches the one that you need
  $( ".log" ).text( "Triggered ajaxComplete handler. The result is " +
  xhr.responseText );
  }
});

这个技巧的唯一限制是你必须在你的电话中有一些东西,以便你可以确定它是你想要验证响应的电话