jQuery";“递归太多”;仅在一个特定服务器上出错

jQuery";“递归太多”;仅在一个特定服务器上出错,jquery,Jquery,更新 我从jQuery库的缩小版本切换到开发人员版本,并找到了jQuery库中发生错误的部分,jqueryv1.5.1.js的第2467行 但在这个时候,我无法追溯到这件事的确切起源 结束更新 我遇到了一个我无法解决的问题。我有以下使用jQuery 1.5.1的代码块: $('#agencyForm').submit(function(e){ // form field validations var zipRegex = /^[0-9]{5}(-[0-9]{4})?$/;

更新

我从jQuery库的缩小版本切换到开发人员版本,并找到了jQuery库中发生错误的部分,jqueryv1.5.1.js的第2467行

但在这个时候,我无法追溯到这件事的确切起源

结束更新

我遇到了一个我无法解决的问题。我有以下使用jQuery 1.5.1的代码块:

$('#agencyForm').submit(function(e){
    // form field validations
    var zipRegex = /^[0-9]{5}(-[0-9]{4})?$/;
    var agencyNameRegex = /^[a-zA-Z\-\ \'\.]+$/;
    var cityRegex = /^[^0-9]+$/;
    var errMsg = '';
    if($('#agency_nm').val().length == 0) {
        errMsg += 'Agency Name is missing.\n';
    } else if (!agencyNameRegex.test($('#agency_nm').val())) {
        errMsg += 'Agency Name can only contain letters, hyphens, periods, and apostrophes.\n';
    }
    if($('#agency_address1_tx').val().length == 0) {
        errMsg += 'Address 1 is missing.\n';
    }
    if($('#agency_city_nm').val().length == 0) {
        errMsg += 'City is missing.\n';
    } else if (!cityRegex.test($('#agency_city_nm').val())) {
        errMsg += 'City can only contain letters and punctuation.\n';
    }
    if($('#agency_state_nm').val().length == 0) {
        errMsg += 'State is missing.\n';
    }
    if($('#agency_postal_cd').val().length == 0) {
        errMsg += 'Zip Code is missing.\n';
    } else if (!zipRegex.test($('#agency_postal_cd').val())) {
        errMsg += 'Zip Code must be in the format of 99999 or 99999-9999.\n';
    }
    if(errMsg.length > 0) {
        alert('There were errors with your submission.\n\n' + errMsg);
        e.preventDefault();
    }
});
实际上,在运行此功能的每台服务器和浏览器上都没有问题。但是我们正在测试一些新的服务器来替换现有的服务器集,而这段代码只有在验证通过时才会抛出“太多递归”错误。换句话说,当什么都不应该发生的时候

这在多个层面上对我来说毫无意义。我已经检查并确保出现故障的服务器和正常工作的服务器上的代码库是相同的。没有区别


有人能想出一个原因来解释为什么我只会在某个服务器上出错吗

有点难以猜测可能会发生什么,而您向我们展示的代码根本没有(或不应该递归)。我会看一看里面的流量,然后比较它工作时和失败时的情况。可能会给你一些线索。

问题解决了。代码基并不完全相同。一个旧版本的验证,一个肯定会导致递归错误的验证,不知何故被放到了那个服务器上

$('#agencyForm').submit(function(e){
    e.preventDefault();
    // form field validations
    var zipRegex = /^[0-9]{5}(-[0-9]{4})?$/;
    var agencyNameRegex = /^[a-zA-Z\-\ \'\.]+$/;
    var cityRegex = /^[^0-9]+$/;
    var errMsg = '';
    if($('#agency_nm').val().length == 0) {
        errMsg += 'Agency Name is missing.\n';
    } else if (!agencyNameRegex.test($('#agency_nm').val())) {
        errMsg += 'Agency Name can only contain letters, hyphens, periods, and apostrophes.\n';
    }
    if($('#agency_address1_tx').val().length == 0) {
        errMsg += 'Address 1 is missing.\n';
    }
    if($('#agency_city_nm').val().length == 0) {
        errMsg += 'City is missing.\n';
    } else if (!cityRegex.test($('#agency_city_nm').val())) {
        errMsg += 'City can only contain letters and punctuation.\n';
    }
    if($('#agency_state_nm').val().length == 0) {
        errMsg += 'State is missing.\n';
    }
    if($('#agency_postal_cd').val().length == 0) {
        errMsg += 'Zip Code is missing.\n';
    } else if (!zipRegex.test($('#agency_postal_cd').val())) {
        errMsg += 'Zip Code must be in the format of 99999 or 99999-9999.\n';
    }
    if(errMsg.length > 0) {
        alert('There were errors with your submission.\n\n' + errMsg);
    } else {
        $('#agencyForm').submit();
    }
});

谢谢你给我的提琴技巧

这可能是一个愚蠢的问题(我很抱歉),但服务器是指托管JS文件的服务器,而不是运行浏览器的客户机,对吗。这是一个web服务器升级。相同的体系结构(Unix、Websphere、CF9.0.1)只是一个升级的盒子。
$('#agencyForm').submit(function(e){
    e.preventDefault();
    // form field validations
    var zipRegex = /^[0-9]{5}(-[0-9]{4})?$/;
    var agencyNameRegex = /^[a-zA-Z\-\ \'\.]+$/;
    var cityRegex = /^[^0-9]+$/;
    var errMsg = '';
    if($('#agency_nm').val().length == 0) {
        errMsg += 'Agency Name is missing.\n';
    } else if (!agencyNameRegex.test($('#agency_nm').val())) {
        errMsg += 'Agency Name can only contain letters, hyphens, periods, and apostrophes.\n';
    }
    if($('#agency_address1_tx').val().length == 0) {
        errMsg += 'Address 1 is missing.\n';
    }
    if($('#agency_city_nm').val().length == 0) {
        errMsg += 'City is missing.\n';
    } else if (!cityRegex.test($('#agency_city_nm').val())) {
        errMsg += 'City can only contain letters and punctuation.\n';
    }
    if($('#agency_state_nm').val().length == 0) {
        errMsg += 'State is missing.\n';
    }
    if($('#agency_postal_cd').val().length == 0) {
        errMsg += 'Zip Code is missing.\n';
    } else if (!zipRegex.test($('#agency_postal_cd').val())) {
        errMsg += 'Zip Code must be in the format of 99999 or 99999-9999.\n';
    }
    if(errMsg.length > 0) {
        alert('There were errors with your submission.\n\n' + errMsg);
    } else {
        $('#agencyForm').submit();
    }
});