JQuery';帖子有时工作有时会返回403禁止的错误


JQuery's $.post sometimes work sometimes return 403 forbidden error

有时我会得到一个403禁止的错误,我看不出有什么问题
这是我的jQuery代码:

    $.ajax({
        type: 'POST',
        url: './ajax-conf-editc.php',
        data: { conf_id: Id, conf_contenido: data },
        async: false,
        success: function(msg){
            if ( msg == '1' || msg == 1){
                var confname = $('#nameConf').val();
                $.cookie('SUCCESS', 'Se ha guardado el contenido de la configuración "' + confname + '".', { expires : 1, path : '/' });
                $(window.location).attr('href', 'index.php');
            } else {
                $('#conf-editc-form').removeAlertBoxes();
                $('#conf-editc-form').alertBox(msg, {type: 'error'});
            }
        }
    });

有了这些数据就可以正常工作:

conf_id=11&conf_contenido=%2523tabs-0%253CtabContent%253E%253Cp%253EContenido%253C%2Fp%253E%253CtabTitle

但当我发送这个时,失败并返回我一个403禁止

conf_id=11&conf_contenido=%2523tabs-0%253CtabContent%253E%253Cp%253E%253Ca%2520onclick%253D%2522javascript%253A%2524%2528%2520%2527%2523tabs%2527%2520%2529。tabs%2528%257B selected%253A1%257D%2529%253B scroll%25280%252C0%2529%2522%2520href%253D%25222javascript%253避免%25280%2529%253B%2522%253E contentnido%253C%2Fa%253E%253C%2Fp%253E%253Ctab标题%253EInicio%253Ctabs%253E%2523tabs-1%253Ctab内容%253E%-253Cp%253EContenido%25201%253C%2Fp%253E%253CtabTitle%253Edos

我希望有人能帮助我,告诉我为什么会发生这种事?

这是我失败时得到的消息:

禁止

您没有在此服务器上访问/kidspc2/configuraciones/ajax-conf-editc.php的权限。

此外,在尝试使用ErrorDocument处理请求时,还遇到了404 Not Found错误。

编辑:可能是mod_security在做这件事吗?我怎么能查一下呢?

编辑:我解决了这个问题,在Base64中编码conf_content值。

尝试删除url中的点和斜杠

把这个./ajax-conf-editc.php改成这个ajax-conf-editc.php,告诉我你得到了什么。

我想您的$.ajax在很短的时间内被请求了不止一次,这就是为什么您会出现这个404错误。您可以通过取消所有以前的ajax调用来修复它,并为最新的ajax调用请求进行新的ajax呼叫。希望这能有所帮助。

像下面的代码:

    if( this.ajax ){
            this.ajax.abort();
        }
        this.ajax=$.ajax({
        type: 'POST',
        url: './ajax-conf-editc.php',
        data: { conf_id: Id, conf_contenido: data },
        async: false,
        success: function(msg){
        if ( msg == '1' || msg == 1){
            var confname = $('#nameConf').val();
            $.cookie('SUCCESS', 'Se ha guardado el contenido de la configuración "' + confname +        '".', { expires : 1, path : '/' });
            $(window.location).attr('href', 'index.php');
        } else {
            $('#conf-editc-form').removeAlertBoxes();
            $('#conf-editc-form').alertBox(msg, {type: 'error'});
        }
    }
});