我注意到在尝试以 JSON 格式发布表单数据时,以下内容不起作用:
$.ajax({
type: "POST",
url: url,
data: JSON.stringify(formData),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg) {
// TODO: Listen for server ok.
alert(msg);
}
但是,这有效:
$.post(url,
JSON.stringify(formData),
function(msg) {
// TODO: Listen for server ok. If this is successfull.... clear the form
alert(msg);
},
"json");
这只是好奇心,但有人知道为什么吗?有什么理由使用其中一个而不是另一个?
最佳答案
- $.post 仅用于发出 HTTP Post 请求。内部它 使用带有一组特殊参数的 $.ajax。
- $.ajax 可用于 更灵活地执行任何类型的 HTTP 请求
另请参阅:http://api.jquery.com/jQuery.post/
$.post 相当于:
$.ajax({
type: 'POST',
url: url,
data: data,
success: success,
dataType: dataType
});
因此,方法调用中的唯一区别是 contentType。这意味着您基本上正在尝试比较具有不同参数集的两个方法调用。
关于jquery - $.ajax 与 $.post 相比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9206698/