好奇是否有人知道关于data参数的区别。
我有一种$.post方法,将a $('#myform').serialize()作为我的数据参数即可工作。
$.post
$('#myform').serialize()
如果我使用这种$.ajax()方法尝试相同的操作,则不会成功,因为我的数据参数似乎不正确。
$.ajax()
有谁知道区别,我可能会用什么代替上面的.serialize?
.serialize
重新阅读一些在线文档后,我决定在$ .ajax上坚持使用$ .post。
$ .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'); }
jQuery 3.x
从jQuery 3.0开始,删除了jqXHR.success(),jqXHR.error()和jqXHR.complete()回调方法。您可以改用jqXHR.done(),jqXHR.fail()和jqXHR.always()。
var jqxhr = $.post(url, data); // Handle results jqxhr.done(function(result) { //alert("ajax success"); }); jqxhr.fail(function() { //alert("ajax error"); }); jqxhr.always(function() { //alert("ajax complete"); });
https://api.jquery.com/jquery.post/