【发布时间】:2012-08-30 11:29:21
【问题描述】:
以下代码触发 GET 而不是 POST HTTP 请求。
function AddToDatabase() {
this.url = './api/add';
}
AddToDatabase.prototype.postData = function(dataToPost) {
$.ajax({
type: "POST",
url: this.url,
data: dataToPost,
context: this,
success: this.onSuccess
});
};
var AddToDatabase = new AddToDatabase();
data = {data: 'coucou'};
AddToDatabase.postData(data);
为什么,以及如何获得 POST ?
我在 Google Chrome Inspect 和 Firefox Inspect 中看到浏览器发送 GET。这是来自 Chrome:
请求网址:http://localhost/SAMPLE-CODES/UPDATE%20MYSQL/api/add/ 请求方式:GET 状态码:200 OK
已解决
名为“./api/add”的 URL 实际上是发布到“./api/add/index.php”的。原来调用 './api/add/index.php' 或 './api/add/' 给了我一个 POST 请求。
这只是一个错误的 URL,但由于某种原因,我收到了对 '.api/add/' 的成功 GET 请求。
【问题讨论】:
-
为什么会是 GET 请求?
-
您是否尝试在 firefox 上运行 ajax 调用并在 firebug 上打开网络面板?
-
Test - 如果你运行它并检查网络面板,你会发现它发送了一个 post 请求
-
@tucson - 正如我已经写过的那样 - 检查您的 .htaccess 文件。可能它会重定向而不是重写。基本上,我看到 JS 没问题(预计 url './api/add' 中的那个点让我感到困惑)。所以它看起来更像是服务器端问题。而您问题中的信息不足以提供具体帮助
-
请添加解决方案作为答案