Ajax请求POST返回403错误,GET在同一个url上返回200 ok

时间:2015-03-10 16:00:57

标签: ajax post prestashop

我正在尝试建立一个prestashop网店,我买了一个主题来定制它。 Instalation工作得很好,但是当到达主题的实时编辑模块时,我遇到了一个问题:在自定义布局后我试图保存我的修改,但它返回403错误。我已经尝试调试它,我已经联系了我的主机,我已经联系了主题的开发者,但没有人可以帮助我。在错误日志中没有出现任何有关此问题。开发人员说它在多个主机上进行了测试,效果很好。我的主人说,如果日志中没有错误消息,他们就无法做任何事情。

我设法将这个问题简单化了一下。有一个更大的参数(它包含所有新配置),如果我禁止发送,那么我得到以下错误:“您的托管服务提供商在httpd.conf中设置了非标准或非常少的参数LimitRequestLine值。请在httpd.conf中设置参数LimitRequestLine的默认设置值。“我在帖子上收到这个错误并得到了。

如果http调用是通过ajax发布的话,这个参数可能是我的问题的根源?或者还有更多这个问题?

我正在尝试解决这个问题3个月了,我已经和托管公司谈过了,我已经和他们的开发者交谈了,我搜索了很多论坛,但没有找到答案。我很想在这件事上得到任何帮助。

1 个答案:

答案 0 :(得分:0)

看起来我用以下代码解决了这个问题:

  1. /public_html/modules/ixtengine/js/cpanel/cpanel.min.js
  2. ... ,$.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:{ ...

    1. /public_html/modules/ixtengine/cpanel/functions/upload.savepf.php /public_html/modules/ixtengine/cpanel/functions/upload.previewwid.php
    2. ...

      $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错误,因此我无法确定此方法是否适用于遇到此问题的其他人,但它适用于我。