jquery-ajax DELETE 请求抛出 403 访问被拒绝错误


jquery-ajax DELETE request throws 403 access denied error

当用户

单击按钮时调用以下函数。

function clearTable() {
    $.ajax({
        url: 'cleartable.php',
        type: 'DELETE',
        success: function(result) {}
    });
}

在我的本地主机服务器上进行测试时,这按照我想要的方式工作,即 clearTable()调用cleartable.php,而又会TRUNCATE TABLE tablename

但是,当我在我的远程服务器上运行它时,Chrome的javascript控制台我打印了错误消息:

删除URL_TO_MY_REMOTE_SERVER/清除表.php 403(拒绝访问( jquery-1.9.1.min.js:5

解决方法是将type更改为 POSTGET,然后它将成功调用 php。但是,我想知道导致 DELETE 请求失败的原因。它适用于我的本地主机,那么为什么它不能在我的远程服务器上工作呢?此外,基于 REST,请求类型为 DELETE 更有意义,因为我正在删除服务器上的某些内容,对吧?

首先 - 我的回答是基于我对 Apache 的经验,尽管它可能与其他服务器软件相关。

我在客户端站点上遇到了同样的问题,似乎他们的httpd.conf文件中的相关VirtualDirectory条目拒绝了DELETE请求,因此出现了403 Forbidden错误。

我仍在等待他们的回复,看看允许 DELETE 请求是否解决了此错误,但我想我会在这里发布我的发现,希望它可以解释您所看到的内容。