1

当用户单击按钮时,将调用以下函数。

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

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

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

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

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

4

1 回答 1

0

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

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

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

于 2013-06-30T14:00:17.793 回答