当用户
单击按钮时调用以下函数。
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
更改为 POST
或 GET
,然后它将成功调用 php。但是,我想知道导致 DELETE 请求失败的原因。它适用于我的本地主机,那么为什么它不能在我的远程服务器上工作呢?此外,基于 REST,请求类型为 DELETE 更有意义,因为我正在删除服务器上的某些内容,对吧?
首先 - 我的回答是基于我对 Apache 的经验,尽管它可能与其他服务器软件相关。
我在客户端站点上遇到了同样的问题,似乎他们的httpd.conf文件中的相关VirtualDirectory条目拒绝了DELETE请求,因此出现了403 Forbidden错误。
我仍在等待他们的回复,看看允许 DELETE 请求是否解决了此错误,但我想我会在这里发布我的发现,希望它可以解释您所看到的内容。