繁体   English   中英

Drupal中的Ajax请求给出了403

[英]Ajax request in Drupal gives 403

我在Drupal中执行Ajax请求。 我正在向自定义PHP文件发出POST请求,该请求将压缩文件。 但是,当我发送长文件名数组时,我在控制台中收到一条错误消息。

POST http://www.example.com/url/zip-file.php 403 (Forbidden)

我的帖子请求如下所示:

files_array[]:/long_url/really%20long%20filename.pdf
files_array[]:/long_url/really%20long%20filename.pdf
files_array[]:/long_url/really%20long%20filename.pdf
files_array[]:/long_url/really%20long%20filename.pdf
files_array[]:/long_url/really%20long%20filename.pdf

它可以使用一些文件名,但是随着我添加更多文件名,出现403错误并且我的功能失败。

有人知道这可能是什么吗?

我的.htaccess文件中有这些值

php_value upload_max_filesize 200M
php_value post_max_size 200M
php_value memory_limit 200M
php_value max_input_vars 2500

而且我已经检查了phpinfo()以确保它们正常工作

javascript请求如下所示:

$.ajax({
    type: 'POST',
    url: Drupal.settings.basePath + Drupal.settings.pathToTheme + '/includes/zip-file.php',
    data: {
        'files_array': files_array
    },
    success: function(data) {
        var result = JSON.parse(data);

        files_array = [];
        if(result.success) {
            window.location.href = Drupal.settings.basePath + result.file_path;
        } else {
            alert('Failed to create zip file.');
        }
        $('#table-actions').find('.ajax-load').hide();
    }
})

编辑:我也试图完全清空PHP文件,以确保它不是PHP错误(据我了解)。

  1. 首先,我将在维基页面后面解释Forbidden 403含义:

    • Web服务器可能响应client对网页的request而返回HTTP 403 Forbidden状态,或者可能指示可以访问该服务器并处理该请求,但refuses采取任何进一步的措施。 HTTP status code 403响应是Web服务器被配置为拒绝客户端访问所请求资源的结果。

    • 可能导致403 Forbidden response的常见请求是由Web浏览器执行的针对Web页面的HTTP GET request ,以检索页面以在浏览器窗口中显示给用户。 对于其他类型的请求,Web服务器也可能返回403禁止状态。


  1. 您可能会获得403状态的原因:

    • 可能是因为您没有定义page callback属性,为此您可以在此处检查hook_menu()的文档。 如果所涉及的菜单项不存在父项,则它将返回“ Access denied 即使在解决当前用户对您的菜单项的访问权限之前,也会发生这种情况; 因此access callback并不重要。

  1. 解决方案可能是:

    • 将此添加到ajax post

      '访问回调'=>'用户访问',

    • 在您的管理主题中将您Jquery降级。
    • 如果这些解决方案都不起作用,您可能需要在这里看看。

原来是我们的ModSecurity防火墙阻止了POST请求。 我的主人帮助我解决了这个问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM