>웹 프론트엔드 >JS 튜토리얼 >$.ajax() 사용법에 대한 자세한 설명

$.ajax() 사용법에 대한 자세한 설명

php中世界最好的语言
php中世界最好的语言원래의
2018-04-24 14:58:451533검색

이번에는 $.ajax() 사용에 대한 자세한 설명을 가져왔는데, $.ajax() 사용 시 주의사항은 무엇이며, 다음은 실제 사례이므로 살펴보겠습니다.

AJAX는 서버와 데이터를 주고 받으며 웹페이지 전체를 보완하면서 웹페이지의 일부를 업데이트할 수 있는 기술입니다. 다음으로, 이 기사에서는 필요한 경우 함께 배울 수 있는 몇 가지 일반적인 Ajax 방법을 소개합니다.

1.url:

은 요청이 전송되는 문자열 유형 매개변수(기본값은 현재 페이지 주소)여야 합니다.

2.type:

에는 문자열 유형의 매개변수가 필요하며 요청 방법(post 또는 get)은 기본적으로 get으로 설정됩니다. put 및 delete와 같은 다른 http 요청 방법도 사용할 수 있지만 일부 브라우저에서만 지원됩니다.

3.timeout:

에는 Number 유형의 매개변수가 필요하며 요청 시간 제한(밀리초)을 설정합니다. 이 설정은 $.ajaxSetup() 메서드의 전역 설정을 재정의합니다.

4.async:

에는 부울 유형의 매개변수가 필요합니다. 기본 설정은 true입니다. 동기 요청을 보내야 하는 경우 이 옵션을 false로 설정하세요. 동기 요청은 브라우저를 잠그며 사용자는 다른 작업을 수행하기 전에 요청이 완료될 때까지 기다려야 합니다.

5.cache:

에는 부울 유형의 매개변수가 필요하며 기본값은 true입니다(dataType이 스크립트인 경우 기본값은 false입니다). false로 설정하면 브라우저 캐시에서 요청 정보가 로드되지 않습니다.

6.data:

에는 개체 또는 문자열 유형의 매개변수와 서버로 전송되는 데이터가 필요합니다. 문자열이 아닌 경우 자동으로 문자열 형식으로 변환됩니다. get 요청이 URL에 추가됩니다. 이러한 자동 변환을 방지하려면 processData 옵션을 볼 수 있습니다. 객체는 키/값 형식이어야 합니다. 예를 들어 {foo1:"bar1",foo2:"bar2"}는 &foo1=bar1&foo2=bar2로 변환됩니다. 배열인 경우 JQuery는 자동으로 동일한 이름을 다른 값에 할당합니다. 예를 들어, {foo:["bar1","bar2"]}는 &foo=bar1&foo=bar2로 변환됩니다.

7.dataType:

에는 문자열 유형의 매개변수가 필요하며 서버에서 반환된 데이터 유형이 예상됩니다. 지정하지 않으면 JQuery는 http 패키지 MIME 정보를 기반으로 responseXML 또는 responseText를 자동으로 반환하고 이를 콜백 함수 매개변수로 전달합니다. 사용 가능한 유형은 다음과 같습니다.

xml: JQuery로 처리할 수 있는 XML 문서를 반환합니다.

html: 일반 텍스트 HTML 정보를 반환합니다. 포함된 스크립트 태그는 DOM에 삽입될 때 실행됩니다.

script: 일반 텍스트 JavaScript 코드를 반환합니다. 결과는 자동으로 캐시되지 않습니다. 캐시 매개변수가 설정되지 않은 경우. 동일한 도메인이 아닌 원격 요청을 수행할 때 모든 게시 요청은 가져오기 요청으로 변환됩니다.

json: JSON 데이터를 반환합니다.

jsonp: JSONP 형식. myurl?callback=?과 같은 SONP 형식을 사용하여 함수를 호출할 때 JQuery는 자동으로 마지막 "?"를 올바른 함수 이름으로 대체하여 콜백 함수를 실행합니다.

text: 일반 텍스트 문자열을 반환합니다.

8.beforeSend:

에는 함수 유형의 매개변수가 필요합니다. 요청을 보내기 전에 사용자 정의 HTTP 헤더를 추가하는 등 XMLHttpRequest 객체의 기능을 수정할 수 있습니다. beforeSend에서 false가 반환되면 이 ajax 요청을 취소할 수 있습니다. XMLHttpRequest 객체가 유일한 매개변수입니다.

function(XMLHttpRequest){
this; //调用本次ajax请求时传递的options参数
}

9.complete:

에는 요청이 완료된 후 호출되는 콜백 함수인 함수 유형의 매개변수가 필요합니다(요청이 성공하거나 실패할 때 호출됨). 매개변수: XMLHttpRequest 객체와 성공적인 요청 유형을 설명하는 문자열.

function(XMLHttpRequest, textStatus){
this; //调用本次ajax请求时传递的options参数
}

10.success:

요청 성공 후 호출되는 콜백 함수에는 함수 유형의 매개변수가 필요합니다.

(1) 서버에서 반환되고 dataType 매개변수에 따라 처리되는 데이터입니다.

(2)描述状态的字符串。

function(data, textStatus){
//data可能是xmlDoc、jsonObj、html、text等等
this; //调用本次ajax请求时传递的options参数
}

11.error:

要求为Function类型的参数,请求失败时被调用的函数。该函数有3个参数,即XMLHttpRequest对象、错误信息、捕获的错误对象(可选)。ajax事件函数如下:

function(XMLHttpRequest, textStatus, errorThrown){
//通常情况下textStatus和errorThrown只有其中一个包含信息
this; //调用本次ajax请求时传递的options参数
}

12.contentType:

要求为String类型的参数,当发送信息至服务器时,内容编码类型默认为"application/x-www-form-urlencoded"。该默认值适合大多数应用场合。

13.dataFilter:

要求为Function类型的参数,给Ajax返回的原始数据进行预处理的函数。提供data和type两个参数。data是Ajax返回的原始数据,type是调用jQuery.ajax时提供的dataType参数。函数返回的值将由jQuery进一步处理。

function(data, type){
//返回处理后的数据
return data;
}

14.dataFilter:

要求为Function类型的参数,给Ajax返回的原始数据进行预处理的函数。提供data和type两个参数。data是Ajax返回的原始数据,type是调用jQuery.ajax时提供的dataType参数。函数返回的值将由jQuery进一步处理。

function(data, type){
//返回处理后的数据
return data;
}

15.global:

要求为Boolean类型的参数,默认为true。表示是否触发全局ajax事件。设置为false将不会触发全局ajax事件,ajaxStart或ajaxStop可用于控制各种ajax事件。

16.ifModified:

要求为Boolean类型的参数,默认为false。仅在服务器数据改变时获取新数据。服务器数据改变判断的依据是Last-Modified头信息。默认值是false,即忽略头信息。

17.jsonp:

要求为String类型的参数,在一个jsonp请求中重写回调函数的名字。该值用来替代在"callback=?"这种GET或POST请求中URL参数里的"callback"部分,例如{jsonp:'onJsonPLoad'}会导致将"onJsonPLoad=?"传给服务器。

18.username:

要求为String类型的参数,用于响应HTTP访问认证请求的用户名。

19.password:

要求为String类型的参数,用于响应HTTP访问认证请求的密码。

20.processData:

要求为Boolean类型的参数,默认为true。默认情况下,发送的数据将被转换为对象(从技术角度来讲并非字符串)以配合默认内容类型"application/x-www-form-urlencoded"。如果要发送DOM树信息或者其他不希望转换的信息,请设置为false。

21.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 += '<p class="comment"><h6>' + comment['username']
+ ':</h6><p class="para"&#39; + comment[&#39;content&#39;]
+ &#39;</p></p>';
});
$('#resText').html(html);
}
});
});
});

相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

推荐阅读:

jquery遍历筛选数组与json对象的方法合集

jquery从数组移除选中值步骤详解

위 내용은 $.ajax() 사용법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.