以下代码触发 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:
Request URL:http://localhost/SAMPLE-CODES/UPDATE%20MYSQL/api/add/ Request Method:GET Status Code:200 OK
已解决
名为“./api/add”的 URL 实际上是发布到“./api/add/index.php”。结果是调用“./api/add/index.php
”或“./api/add/
”给我一个 POST 请求。
这只是一个错误的 URL,但出于某种原因,我收到了对“.api/add/”的成功 GET 请求。
最佳答案
MVC 上的一些问题。出于某种原因,当我删除 [HttPost] 它按预期工作时,即使我告诉 ajax 使用 POST 。
- 原来你需要用
type: "POST"
- 即使 jQuery 页面上的示例说要使用
method : "POST"
现在它是 POST 的
但在深入研究文档后,我发现了这一点。
关于JQuery Ajax 正在发送 GET 而不是 POST,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12195883/