我正在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错误(据我所知)。
答案 0 :(得分:1)
首先,我将在wiki页面后解释Forbidden 403
的含义:
网络服务器可能会返回HTTP 403 Forbidden
状态,以响应来自request
网页的client
,或者可能表示可以访问服务器并处理该请求,但refuses
采取进一步行动。 HTTP status code 403
响应是Web服务器配置为拒绝客户端访问所请求资源的结果。
可能导致403 Forbidden response
的常见请求是由网络浏览器执行的网页的HTTP GET request
,以检索在浏览器窗口中向用户显示的页面。 Web服务器也可以为其他类型的请求返回403 Forbidden状态。
答案 1 :(得分:0)
结果是我们的ModSecurity firefall阻止了POST请求。我的主人帮我解决了。