【发布时间】:2012-07-29 19:40:56
【问题描述】:
有时我会收到 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 Forbidden
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% 257Bselected%253A1%257D%2529%253Bscroll%25280%252C0%2529%2522%2520href%253D%2522javascript%253Avoid%25280%2529%253B%2522%253EContenido%253C%2Fa%253E%253C%253E%253C%Ftitle 253EInicio%253Ctabs%253E%2523tabs-1%253CtabContent%253E%253Cp%253EContenido%25201%253C%2Fp%253E%253CtabTitle%253Edos
我希望有人可以帮助我并告诉我为什么会这样?
这是我失败时收到的消息:
禁止
您无权访问此服务器上的 /kidspc2/configuraciones/ajax-conf-editc.php。
此外,在尝试使用 ErrorDocument 处理请求时遇到 404 Not Found 错误。
编辑:mod_security 可以这样做吗?怎么查不出来?
编辑:我解决了这个问题,在 Base64 中编码 conf_content 值。
【问题讨论】:
-
服务器
error_log中是否有任何条目显示 403 的原因? -
你想在 conf_contenido 中发送什么?
-
您是否尝试过查看 Chrome 或 Firebug 网络面板以确切了解请求是什么、向其发布了哪些数据以及返回的响应/标记对于那些有效的响应/标记是什么?
-
查看此链接stackoverflow.com/a/9691395/138071 您可能对要接收的数据长度有限制
-
这可能与 jQuery 无关,而与 PHP 脚本所做的一切有关。