【发布时间】:2013-06-21 21:34:06
【问题描述】:
当用户点击按钮时,会调用以下函数。
function clearTable() {
$.ajax({
url: 'cleartable.php',
type: 'DELETE',
success: function(result) {}
});
}
当在我的本地主机服务器上测试时,这会按照我想要的方式工作,即clearTable() 调用cleartable.php,而TRUNCATE TABLE tablename 反过来又调用了TRUNCATE TABLE tablename。
但是,当我在远程服务器上运行它时,Chrome 的 javascript 控制台会打印错误消息:
删除 URL_TO_MY_REMOTE_SERVER/cleartable.php 403(拒绝访问) jquery-1.9.1.min.js:5
一种解决方法是将type更改为POST或GET,然后它将成功调用php。但是,我想知道是什么导致 DELETE 请求失败。它适用于我的本地主机,那么为什么它不能在我的远程服务器上运行呢?另外,基于 REST,将请求类型设为 DELETE 更有意义,因为我正在删除服务器上的某些内容,对吧?
【问题讨论】:
-
当你将它发送到远程服务器时,我猜它违反了same origin policy。
-
检查服务器配置。例如 apache
mod_security模块可能会过滤某些类型的请求。
标签: php jquery rest http-status-code-403