通过 AJAX 上传图片时禁止 403

403 forbidden while uploading image via AJAX

我正在尝试找到解决问题的方法,同时我正在尝试通过 AJAX 上传图片。

我正在使用此代码:

document.getElementById('file').addEventListener('change', function(e) {
        var file = this.files[0];
        console.log(file);
        var xhr = new XMLHttpRequest();
        (xhr.upload || xhr).addEventListener('progress', function(e) {
            var done = e.position || e.loaded
            var total = e.totalSize || e.total;
            console.log('xhr progress: ' + Math.round(done/total*100) + '%');
        });
        xhr.addEventListener('load', function(e) {
            console.log('xhr upload complete', e, this.responseText);
        });
        xhr.open('post', 'http://webpage.com/images', true);
        var data = new FormData;
        data.append('file', file);
        xhr.send(data);
    });

我在这里找到的:jQuery Upload Progress and AJAX file upload

来自@Rudie

我收到 403 禁止错误并尝试了所有方法。我正在使用 opencart MVC 架构来构建我的自定义仪表板。 我的网站托管在 goddady i) 我在这个文件夹中没有任何 .htaccess 文件 ii) 在godaddy "hotlink protextion" 的cpanel 有一个选项,我也把URL 放在那里! (http://webpage.com/images) iii) 尝试将 777 作为文件夹权限

但仍然是同样的错误。我认为这是最适合我的解决方案的代码。有什么建议吗?我做错了什么?

我找到了我的解决方案...我实际上也更改了上面的代码.. 1. 首先,在我的图像文件夹中,我创建了一个名为 index.html 的 HTML 文件 这对于避免以下类型的错误非常重要: 没有匹配的 DirectoryIndex (index.html.var,index.htm,index.html,index.xhtml.. ..e.t.c.)。我通过我的托管服务提供商 (goddady) 的错误日志文件发现了这个错误,这篇文章让我理解并为我提供了更多信息来找到它:

https://www.liquidweb.com/kb/apache-error-no-matching-directoryindex-index-html-found-solved/

文章说:"...意思是 Apache 将只查找名为 index.html"的目录索引文件

这解决了我的问题!

我还更改了我的代码,以便使用 openCart 架构通过 ajax 上传图像,正如我在 Whosebug 中提出的另一个问题中提到的那样。你可以在这里找到它 ,以防有人遇到同样的问题