$.post、$.get是一些简单的方法,如果要处理复杂的逻辑,还是需要用到jQuery.ajax()
一、$.ajax的一般格式
$.ajax({ type: 'POST', url: url , data: data , success: success , dataType: dataType });
二、$.ajax的参数描述
参数 描述
url | 必需。规定把请求发送到哪个 URL。 |
data | 可选。映射或字符串值。规定连同请求发送到服务器的数据。 |
success(data, textStatus, jqXHR) | 可选。请求成功时执行的回调函数。 |
dataType |
可选。规定预期的服务器响应的数据类型。 默认执行智能判断(xml、json、script 或 html)。 |
三、$.ajax需要注意的一些地方:
1.data主要方式有三种,html拼接的,json数组,form表单经serialize()序列化的;通过dataType指定,不指定智能判断。
2.$.ajax只提交form以文本方式,如果异步提交包含28897b20adb25fbae118a3f80f538dec上传是传过不过去,需要使用jquery.form.js的$.ajaxSubmit
四、$.ajax我的实际应用例子
//1.$.ajax带json数据的异步请求 var aj = $.ajax( { url:'productManager_reverseUpdate',// 跳转到 action data:{ selRollBack : selRollBack, selOperatorsCode : selOperatorsCode, PROVINCECODE : PROVINCECODE, pass2 : pass2 }, type:'post', cache:false, dataType:'json', success:function(data) { if(data.msg =="true" ){ // view("修改成功!"); alert("修改成功!"); window.location.reload(); }else{ view(data.msg); } }, error : function() { // view("异常!"); alert("异常!"); } }); //2.$.ajax序列化表格内容为字符串的异步请求 function noTips(){ var formParam = $("#form1").serialize();//序列化表格内容为字符串 $.ajax({ type:'post', url:'Notice_noTipsNotice', data:formParam, cache:false, dataType:'json', success:function(data){ } }); } //3.$.ajax拼接url的异步请求 var yz=$.ajax({ type:'post', url:'validatePwd2_checkPwd2?password2='+password2, data:{}, cache:false, dataType:'json', success:function(data){ if( data.msg =="false" ) //服务器返回false,就将validatePassword2的值改为pwd2Error,这是异步,需要考虑返回时间 { textPassword2.html("<font color='red'>业务密码不正确!</font>"); $("#validatePassword2").val("pwd2Error"); checkPassword2 = false; return; } }, error:function(){} }); //4.$.ajax拼接data的异步请求 $.ajax({ url:'<%=request.getContextPath()%>/kc/kc_checkMerNameUnique.action', type:'post', data:'merName='+values, async : false, //默认为true 异步 error:function(){ alert('error'); }, success:function(data){ $("#"+divs).html(data); } });
url: 요구사항은 문자열 유형 매개변수(기본값은 현재 페이지 주소)이며 요청이 전송되는 주소입니다.
type: 매개변수는 문자열 유형이어야 하며 요청 방법(post 또는 get)은 기본적으로 get으로 설정됩니다. put 및
과 같은 다른 http 요청 방법에 유의하세요.delete도 사용할 수 있지만 일부 브라우저에서만 지원됩니다.
timeout: Number 유형의 매개변수여야 하며 요청 시간 제한(밀리초)을 설정합니다. 이 설정은 $.ajaxSetup() 메서드의 전역 설정을 재정의합니다
설정합니다.
async: 부울 유형의 매개변수가 필요합니다. 기본 설정은 모든 요청이 비동기 요청입니다.
동기 요청을 보내야 하는 경우 이 옵션을 false로 설정하세요. 동기식 요청은 브라우저를 잠그고 사용자는 다른 작업을 기다려야 합니다.
요청이 완료된 후에만 실행할 수 있습니다.
캐시: 부울 유형의 매개변수가 필요하며 기본값은 true입니다(dataType이 스크립트인 경우 기본값은 false입니다).
false로 설정하면 브라우저 캐시에서 요청 정보를 로드하지 않습니다.
data: Object 또는 String 유형의 매개변수가 필요하며 데이터는 서버로 전송됩니다. 문자열이 아닌 경우 자동으로 문자열 형식으로 변환됩니다
공식. get 요청이 URL에 추가됩니다. 이러한 자동 변환을 방지하려면 processData 옵션을 확인하십시오. 객체는 키/값 형식이어야 합니다
수식(예: {foo1:"bar1",foo2:"bar2"})은 &foo1=bar1&foo2=bar2로 변환됩니다. 배열인 경우 JQuery는 자동으로 달라집니다
같은 이름에 해당하는 값입니다. 예를 들어, {foo:["bar1","bar2"]}는 &foo=bar1&foo=bar2로 변환됩니다.
dataType: 서버에서 반환할 것으로 예상되는 데이터 유형인 문자열 유형이어야 하는 매개변수입니다. 지정하지 않으면 JQuery는 자동으로 mime을 기반으로 http 패키지를 만듭니다
정보는 responseXML 또는 responseText로 반환되고 콜백 함수 매개변수로 전달됩니다.
사용 가능한 유형은 다음과 같습니다.
xml: JQuery로 처리할 수 있는 XML 문서를 반환합니다.
html: 일반 텍스트 HTML 정보를 반환합니다. 포함된 스크립트 태그는 DOM에 삽입될 때 실행됩니다.
스크립트: 일반 텍스트 JavaScript 코드를 반환합니다. 결과는 자동으로 캐시되지 않습니다. 캐시 매개변수가 설정되지 않은 경우. 원격 요청 시 주의하세요
(동일한 도메인이 아님) 모든 게시물 요청은 가져오기 요청으로 변환됩니다.
json: JSON 데이터를 반환합니다.
jsonp: JSONP 형식입니다. myurl?callback=?과 같은 SONP 형식을 사용하여 함수를 호출하면 JQuery는 자동으로 마지막
을 대체합니다."?"는 콜백 함수를 실행하는 데 적합한 함수 이름입니다.
text: 일반 텍스트 문자열을 반환합니다.
beforeSend: 매개변수는 함수 유형이어야 합니다. 요청을 보내기 전에 사용자 정의
를 추가하는 등 XMLHttpRequest 객체의 기능을 수정할 수 있습니다.HTTP 헤더. beforeSend에서 false가 반환되면 이 ajax 요청을 취소할 수 있습니다. XMLHttpRequest 객체가 유일한 매개변수입니다
번호.
함수(XMLHttpRequest){
this; //이 Ajax 요청을 호출할 때 전달되는 옵션 매개변수
}
complete: 파라미터가 Function 형태여야 하며, 요청 완료 후 콜백 함수가 호출됩니다(요청 성공 또는 실패 시 호출).
매개변수: XMLHttpRequest 객체와 성공적인 요청 유형을 설명하는 문자열.
함수(XMLHttpRequest, textStatus){
this; //이 Ajax 요청을 호출할 때 전달되는 옵션 매개변수
}
성공: 매개변수는 함수 유형이어야 합니다. 요청 성공 후 호출되는 콜백 함수에는 두 개의 매개변수가 있습니다.
(1) 서버에서 반환하고 dataType 매개변수에 따라 처리되는 데이터입니다.
(2) 상태를 설명하는 문자열입니다.
함수(데이터, 텍스트상태){
//데이터는 xmlDoc, jsonObj, html, 텍스트 등일 수 있습니다.
this; //이 Ajax 요청을 호출할 때 전달되는 옵션 매개변수
오류: 매개변수는 함수 유형이어야 하며 요청이 실패하면 함수가 호출됩니다. 이 함수에는 XMLHttpRequest 객체라는 3개의 매개변수가 있습니다. 오류
오류 메시지, 캡처된 오류 개체(선택 사항).
Ajax 이벤트 기능은 다음과 같습니다.
함수(XMLHttpRequest, textStatus, errorThrown){
//일반적으로 textStatus와 errorThrown 중 하나만 정보를 포함합니다
this; //이 Ajax 요청을 호출할 때 전달되는 옵션 매개변수
}
contentType: 문자열 유형의 매개변수가 필요합니다. 서버에 정보를 보낼 때 콘텐츠 인코딩 유형은 기본적으로
입니다.은 "application/x-www-form-urlencoded"입니다. 이 기본값은 대부분의 애플리케이션에 적합합니다.
dataFilter: Ajax가 반환한 원본 데이터를 전처리하는 함수인 함수 유형의 매개변수가 필요합니다.
데이터와 유형이라는 두 가지 매개변수를 제공합니다. data는 Ajax가 반환한 원본 데이터이며, jQuery.ajax 호출 시 type이 제공됩니다
dataType 매개변수. 함수에서 반환된 값은 jQuery에 의해 추가로 처리됩니다.
함수(데이터, 유형){
//처리된 데이터를 반환
데이터 반환
}
전역: 부울 유형의 매개변수가 필요하며 기본값은 true입니다. 전역 Ajax 이벤트를 트리거할지 여부를 나타냅니다. false로 설정하면 전역
이 트리거되지 않습니다.ajax 이벤트, ajaxStart 또는 ajaxStop을 사용하여 다양한 Ajax 이벤트를 제어할 수 있습니다.
ifModified: 부울 유형 매개변수가 필요하며 기본값은 false입니다. 서버 데이터가 변경된 경우에만 새 데이터를 가져옵니다.
서버 데이터 변경 여부를 판단하는 기준은 Last-Modified 헤더 정보입니다. 기본값은 false이며, 이는 헤더 정보가 무시됨을 의미합니다.
jsonp: 문자열 유형의 매개변수가 필요하며 jsonp 요청에서 콜백 함수의 이름을 다시 작성합니다.
该值用来替代在"callback=?"这种GET或POST请求中URL参数里的"callback"部分,例如
{jsonp:'onJsonPLoad'}会导致将"onJsonPLoad=?"传给服务器。
username:要求为String类型的参数,用于响应HTTP访问认证请求的用户名。
password:要求为String类型的参数,用于响应HTTP访问认证请求的密码。
processData:要求为Boolean类型的参数,默认为true。默认情况下,发送的数据将被转换为对象(从技术角度
来讲并非字符串)以配合默认内容类型"application/x-www-form-urlencoded"。如果要发送DOM
树信息或者其他不希望转换的信息,请设置为false。
scriptCharset:要求为String类型的参数,只有当请求时dataType为"jsonp"或者"script",并且type是GET时
才会用于强制修改字符集(charset)。通常在本地和远程的内容编码不同时使用。
案例代码:
$(function(){ $('#send').click(function(){ $.ajax({ type: "GET", url: "test.json", data: {username:$("#username").val(), content:$("#content").val()}, dataType: "json", success: function(data){ $('#resText').empty(); //清空resText里面的所有内容 var html = ''; $.each(data, function(commentIndex, comment){ html += '' + comment['username']+ ':+ ''; }); $('#resText').html(html); } }); }); });
顺便说一下$.each()函数:
$.each()函数不同于JQuery对象的each()方法,它是一个全局函数,不操作JQuery对象,而是以一个数组或者对象作为第1个参数,以一个回调函数作为第2个参数。回调函数拥有两个参数:第1个为对象的成员或数组的索引,第2个为对应变量或内容。
以上这篇jQuery Ajax 实例代码 ($.ajax、$.post、$.get)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。