好奇,如果有人知道与数据参数有什么不同。
我有一个$.post
方法需要一个$('#myform').serialize()
作为我的数据参数和工作。
如果我使用$.ajax()
方法尝试相同,它不起作用,因为我的数据参数看起来不正确。
有没有人知道区别,我可以用什么来代替上述.serialize
?
好奇,如果有人知道与数据参数有什么不同。
我有一个$.post
方法需要一个$('#myform').serialize()
作为我的数据参数和工作。
如果我使用$.ajax()
方法尝试相同,它不起作用,因为我的数据参数看起来不正确。
有没有人知道区别,我可以用什么来代替上述.serialize
?
重新阅读一些在线文档后,我决定坚持使用$ .post over $ .ajax。
$ .ajax方法的数据参数与$ .post方法不一样,不确定究竟是什么,但是有区别。
我想要使用$ .ajax的唯一原因是我想能够处理事件,并没有意识到我可以用$ .post来实现。
这里是我结束了
function GetSearchItems() {
var url = '@Url.Action("GetShopSearchResults", "Shop", New With {.area = "Shop"})';
var data = $("#ShopPane").serialize();
// Clear container
$('#shopResultsContainer').html('');
// Retrieve data from action method
var jqxhr = $.post(url, data);
// Handle results
jqxhr.success(function (result) {
//alert("ajax success");
$('#shopResultsContainer').html(result.ViewMarkup);
});
jqxhr.error(function() {
//alert("ajax error");
});
jqxhr.complete(function() {
//alert("ajax complete");
});
// Show results container
$("#shopResultsContainer").slideDown('slow');
}
此信息对您有所帮助。
总之以下:
$.post("/ajax", {"data" : json })
等同于:
$.ajax({
type: "POST",
url: "/ajax",
data: {"data": json}
});
这里的问题是不是事实$.ajax()
不工作,那是因为你没有设置Ajax请求中的类型参数,它默认为GET请求。数据通过查询字符串发送以获取,如果您的后端将它们视为后期参数,则不会读取它们。
$.post
只是$.ajax()
,只是type
集。阅读docs,您将看到$.ajax()
默认为GET,如上所述。
如果您转到jQuery文档中的jQuery.post页面,它会向您显示具有类型集的$ .ajax请求。再次阅读文档。
您是否将此指定为数据参数。 $.post
只是$.ajax
的缩写,期望以下内容。
$.ajax({
type : 'POST',
url : url,
data : data,
success : success,
dataType : dataType
});
在$.ajax
你能够同步,但它是不可能在$.post
功能。同步意味着你可以得到返回的结果。
var tmp;
$.ajax({
'async': false,
'type': "POST",
'global': false,
'dataType': 'html',
'url': "Your Url",
'data': {'type': 'data'},
'success': function (data) {
tmp = data;
}
});
alert(tmp);
只是作为补充,在接受的答案,这是mentionned说:“的$就法的数据PARAM做一些事情比$不同。POST方法呢,不知道究竟是什么,但有一个区别“
请尝试使用:
{
...
data: JSON.stringify(yourJsonData),
...
}
否则JSON对象获取的插入有效载荷为URL编码的字符串
类似http://stackoverflow.com/questions/7528757/post-vs-ajax – Techie
RTFM - http://api.jquery.com/jQuery.post/ –