我正在尝试建立一个prestashop网店,我买了一个主题来定制它。 Instalation工作得很好,但是当到达主题的实时编辑模块时,我遇到了一个问题:在自定义布局后我试图保存我的修改,但它返回403错误。我已经尝试调试它,我已经联系了我的主机,我已经联系了主题的开发者,但没有人可以帮助我。在错误日志中没有出现任何有关此问题。开发人员说它在多个主机上进行了测试,效果很好。我的主人说,如果日志中没有错误消息,他们就无法做任何事情。
我设法将这个问题简单化了一下。有一个更大的参数(它包含所有新配置),如果我禁止发送,那么我得到以下错误:“您的托管服务提供商在httpd.conf中设置了非标准或非常少的参数LimitRequestLine值。请在httpd.conf中设置参数LimitRequestLine的默认设置值。“我在帖子上收到这个错误并得到了。
如果http调用是通过ajax发布的话,这个参数可能是我的问题的根源?或者还有更多这个问题?
我正在尝试解决这个问题3个月了,我已经和托管公司谈过了,我已经和他们的开发者交谈了,我搜索了很多论坛,但没有找到答案。我很想在这件事上得到任何帮助。
答案 0 :(得分:0)
看起来我用以下代码解决了这个问题:
... ,$.ajax({type:"POST",url:cpfuncurl+previewfun,data:{
...
替换为
... ,$.ajax({type:"PUT",url:cpfuncurl+previewfun,data:{
...
和
... ,$.ajax({type:"POST",url:cpfuncurl+savefun,data:{
...
替换为
... ,$.ajax({type:"PUT",url:cpfuncurl+savefun,data:{
...
...
$theme = Tools::getValue('theme');
$conf = Tools::getValue('conf');
$skin = Tools::getValue('skin');
$skinid = Tools::getValue('skinid');
$token = Tools::getValue('token');
...
替换为
...
$put_vars=array();
if($_SERVER['REQUEST_METHOD'] == 'PUT')
{
parse_str(file_get_contents("php://input"),$put_vars);
$theme = $put_vars['theme'];
$conf = $put_vars['conf'];
$skin = $put_vars['skin'];
$skinid = $put_vars['skinid'];
$token = $put_vars['token'];
}
else
{
$theme = Tools::getValue('theme');
$conf = Tools::getValue('conf');
$skin = Tools::getValue('skin');
$skinid = Tools::getValue('skinid');
$token = Tools::getValue('token');
}
...
此解决方案特别针对某些主机的ixtengine模块,其中POST返回403错误,因此我无法确定此方法是否适用于遇到此问题的其他人,但它适用于我。