初学AJAx,对于几种写法一直搞不懂,
对于$.ajax(),在官方API文档中是这么说的:
jQuery 底层 AJAX 实现。简单易用的高层实现见 $.get, $.post 等。$.ajax() 返回其创建的 XMLHttpRequest 对象。大多数情况下你无需直接操作该函数,除非你需要操作不常用的选项,以获得更多的灵活性。最简单的情况下,$.ajax()可以不带任何参数直接使用。
儿对于$.post(),官方API文档中是这么说的:
这是一个简单的 POST 请求功能以取代复杂 $.ajax 。请求成功时可调用回调函数。如果需要在出错时执行函数,请使用 $.ajax。
然后先看两个实例:
$('#btnNewFile').bind('click', function () {
//请求获得系统自动生成的招标项目编号,并显示到页面的文本框中
$.post("/InviteBid/GetInviteBidId", function (data, status) {
$("#NewFile").hide();
$('#BidInfo').show();
$('#InviteBidId').val(data); //将请求得到的数据赋值给招标项目编号文本框
$("#btnArea").show();
//更改标题
$("#MainContent").panel({
title:"填写项目信息"
});
});
});
//提交用户输入的必要的项目信息,根据此信息生成相应的Word模板,这里可以用$.post()方法代替
$.ajax({
type:"POST",
url: "/InviteBid/ReceiveInfo",
contentType: "application/json", //如果提交的是json数据类型,则必须有此参数,表示提交的数据类型
//dataType: "json", //表示返回值类型,不必须
data: JSON.stringify({ "InviteBidInfo":
[{ 'BidProId': BidProId, 'BidProType': BidProType, 'BidProName': BidProName, 'ItemType': ItemType }]
}),
success: function (jsonResult) {
//在原来的页面跳转到下载word模板的页面
window.location.href = "/InviteBid/ExportTemplateFile";
},
error: function (data){
alert("下载模板失败!");
}
});
});
之前已经总结过ajax方法中参数的解析,本文这两个方式可以理解为一个简单的,一个完整的,其中$.post()方法中的function(){}只有当请求成功响应成功是才能执行该方法(可以理解为完整写法中succes:后的方法),如果需要在请求出错时执行函数,则只能使用 $.ajax();