Ajax를 배우다 보면 ajax()를 사용하면서 발생하는 문제에 대해 알아보겠습니다. 다음으로 ajax()의 구체적인 사용법을 자세히 소개하겠습니다.
Example
AJAX를 통해 텍스트 로드:
jQuery Code:
$(document).ready(function(){ $("#b01").click(function(){ htmlobj=$.ajax({url:"/jquery/test1.txt",async:false}); $("#myDiv").html(htmlobj.responseText); }); });
HTML Code:
<div id="myDiv"><h2>Let AJAX change this text</h2></div> <button id="b01" type="button">Change Content</button>
Definition and Usage
ajax() 메서드는 HTTP 요청을 통해 원격 데이터를 로드합니다.
이 메서드는 jQuery의 기본 AJAX 구현입니다. 간단하고 사용하기 쉬운 상위 수준 구현을 보려면 $.get, $.post 등을 참조하세요. $.ajax()는 생성된 XMLHttpRequest 객체를 반환합니다. 대부분의 경우 유연성을 높이기 위해 덜 일반적으로 사용되는 옵션을 조작해야 하는 경우가 아니면 이 기능을 직접 조작할 필요가 없습니다.
가장 간단한 경우에는 $.ajax()를 매개변수 없이 직접 사용할 수 있습니다.
참고: 모든 옵션은 $.ajaxSetup() 함수를 통해 전역적으로 설정할 수 있습니다.
Syntax
jQuery.ajax([settings])
Parameters
Description
settings
선택 사항. Ajax 요청을 구성하는 데 사용되는 키-값 쌍 모음입니다.
모든 옵션의 기본값은 $.ajaxSetup()을 통해 설정할 수 있습니다.
Parameters
options
유형: 개체
선택 사항입니다. AJAX 요청 설정. 모든 옵션은 선택 사항입니다.
async
유형: 부울
기본값: true. 기본적으로 모든 요청은 비동기식입니다. 동기 요청을 보내야 하는 경우 이 옵션을 false로 설정하세요.
동기식 요청은 브라우저를 잠그며 다른 사용자 작업은 요청이 완료될 때까지 기다려야 실행될 수 있습니다.
beforeSend(XHR)
Type: Function
사용자 정의 HTTP 헤더 추가와 같이 요청을 보내기 전에 XMLHttpRequest 개체를 수정할 수 있는 함수입니다.
XMLHttpRequest 객체가 유일한 매개변수입니다.
Ajax 이벤트입니다. false가 반환되면 이 ajax 요청을 취소할 수 있습니다.
cache
유형: Boolean
기본값: true, dataType이 script 및 jsonp인 경우 기본값은 false입니다. 이 페이지를 캐시하지 않으려면 false로 설정하세요.
jQuery 1.2의 새로운 기능.
complete(XHR, TS)
유형: 함수
요청 완료 후콜백 함수(요청 성공 또는 실패 후 호출).
매개변수: XMLHttpRequest 객체와 요청 유형을 설명하는 문자열.
Ajax 이벤트입니다.
contentType
유형: 문자열
기본값: "application/x-www-form-urlencoded". 서버에 정보를 보낼 때의 콘텐츠 인코딩 유형입니다.
기본값은 대부분의 상황에 적합합니다. 컨텐츠 유형을 $.ajax()에 명시적으로 전달하면 (전송할 데이터가 없더라도) 확실히 서버로 전송됩니다.
context
Type: Object
이 개체는 Ajax 관련 콜백 함수의 컨텍스트를 설정하는 데 사용됩니다. 즉, 콜백 함수에서 this가 이 개체를 가리키도록 합니다(이 매개변수가 설정되지 않은 경우 이 AJAX 요청을 호출할 때 전달된 옵션 매개변수를 가리킵니다). 예를 들어 DOM 요소를 컨텍스트 매개변수로 지정하면 성공 콜백 함수의 컨텍스트가 이 DOM 요소로 설정됩니다.
이렇게:
$.ajax({ url: "test.html", context: document.body, success: function(){ $(this).addClass("done"); }});
data
유형: 문자열
데이터가 서버로 전송됩니다. 요청 문자열 형식으로 자동 변환됩니다. GET 요청의 URL에 추가됩니다. 이 자동 변환을 비활성화하려면 processData 옵션 설명을 참조하세요. 키/값 형식이어야 합니다. 배열인 경우 jQuery는 자동으로 동일한 이름을 다른 값에 할당합니다. 예를 들어, {foo:["bar1", "bar2"]}는 '&foo=bar1&foo=bar2'로 변환됩니다.
dataFilter
Type: Function
Ajax가 반환한 원본 데이터를 전처리하는 함수입니다. data와 type이라는 두 개의 매개변수를 제공합니다. data는 Ajax가 반환한 원본 데이터이고 type은 jQuery.ajax를 호출할 때 제공되는 dataType 매개변수입니다. 함수에서 반환된 값은 jQuery에 의해 추가로 처리됩니다.
dataType
유형: 문자열
서버에서 반환할 것으로 예상되는 데이터 유형입니다. 지정하지 않으면 jQuery는 HTTP 패키지의 MIME 정보를 기반으로 자동으로 지능적인 판단을 내립니다. 예를 들어 XML MIME 유형은 XML로 인식됩니다. 1.4에서는 JSON이 JavaScript 객체를 생성하고 스크립트가 스크립트를 실행합니다. 그런 다음 서버에서 반환된 데이터는 이 값을 기반으로 구문 분석되어 콜백 함수에 전달됩니다. 사용 가능한 값:
"xml": jQuery로 처리할 수 있는 XML 문서를 반환합니다.
"html": 일반 텍스트 HTML 정보를 반환합니다. 포함된 스크립트 태그는 DOM에 삽입될 때 실행됩니다.
"script": 일반 텍스트 JavaScript 코드를 반환합니다. 결과는 자동으로 캐시되지 않습니다. "cache" 매개변수가 설정되지 않은 경우. 참고: 원격 요청(동일한 도메인 아래가 아님)을 수행하는 경우 모든 POST 요청은 GET 요청으로 변환됩니다. (DOM 스크립트 태그를 사용하여 로드하기 때문입니다.)
"json": JSON 데이터를 반환합니다.
"jsonp": JSONP 형식. "myurl?callback=?"과 같은 JSONP 형식을 사용하여 함수를 호출하면 jQuery는 콜백 함수를 실행하기 위해 자동으로 ?를 올바른 함수 이름으로 바꿉니다.
"text": 일반 텍스트 문자열을 반환합니다.
error
유형: 기능
기본값: 자동 판단(xml 또는 html). 이 함수는 요청이 실패할 때 호출됩니다.
에는 XMLHttpRequest 개체, 오류 메시지 및 (선택 사항) 캡처된 예외 개체의 세 가지 매개 변수가 있습니다.
오류가 발생하면 오류 메시지(두 번째 매개변수)에는 null 외에 "timeout", "error", "notmodified" 및 "parsererror"가 포함될 수 있습니다.
Ajax 이벤트입니다.
global
Type: Boolean
글로벌 AJAX 이벤트를 실행할지 여부입니다. 기본값: 참. false로 설정하면 다양한 Ajax 이벤트를 제어하는 데 사용할 수 있는 ajaxStart 또는 ajaxStop과 같은 전역 AJAX 이벤트가 트리거되지 않습니다.
ifModified
Type: Boolean
서버 데이터가 변경될 때만 새 데이터를 가져옵니다. 기본값: 거짓. HTTP 패킷의 Last-Modified 헤더 정보를 사용하여 결정합니다. jQuery 1.4부터는 서버에 지정된 'etag'도 확인하여 데이터가 수정되지 않았는지 확인합니다.
jsonp
유형: 문자열
jsonp 요청에서 콜백 함수의 이름을 재정의합니다. 이 값은 "onJsonPLoad=?"가 서버에 전달되도록 하는 {jsonp:'onJsonPLoad'}와 같은 GET 또는 POST 요청에서 URL 매개변수의 "콜백" 부분을 대체하는 데 사용됩니다.
jsonpCallback
Type: String
jsonp 요청에 대한 콜백 함수 이름을 지정합니다. 이 값은 jQuery가 자동으로 생성한 임의의 함수 이름 대신 사용됩니다. 이는 주로 jQuery가 고유한 함수 이름을 생성하여 요청을 더 쉽게 관리하고 콜백 함수와 오류 처리를 제공하는 데 사용됩니다. 브라우저가 GET 요청을 캐시하도록 하려는 경우 이 콜백 함수 이름을 지정할 수도 있습니다.
password
유형: 문자열
HTTP 액세스 인증 요청에 응답하는 데 사용되는 비밀번호
processData
유형: 부울
기본값: true. 기본적으로 data 옵션을 통해 전달된 데이터가 객체인 경우(기술적으로 말하면 문자열이 아닌 한) 처리되어 기본 콘텐츠 유형인 "application/x와 일치하는 쿼리 문자열로 변환됩니다. -www-form-urlencoded" ". 변환하고 싶지 않은 DOM 트리 정보나 기타 정보를 보내려면 false로 설정하세요.
scriptCharset
Type: String
요청 시 dataType이 "jsonp" 또는 "script"이고 유형이 "GET"인 경우에만 문자 집합을 강제로 수정하는 데 사용됩니다. 일반적으로 로컬 및 원격 콘텐츠 인코딩이 다른 경우에만 사용됩니다.
success
Type: Function
요청 성공 후 콜백 함수입니다.
매개변수: 서버에서 반환하고 dataType 매개변수에 따라 처리되는 데이터입니다. 상태를 설명하는 문자열입니다.
Ajax 이벤트입니다.
traditional
Type: Boolean
기존 방식으로 데이터를 직렬화하려면 true로 설정하세요. Tools 카테고리의 jQuery.param 메소드를 참고하세요.
timeout
유형: 숫자
요청 시간 제한(밀리초)을 설정합니다. 이 설정은 전역 설정보다 우선 적용됩니다.
type
유형: 문자열
기본값: "GET"). 요청 방법("POST" 또는 "GET"), 기본값은 "GET"입니다. 참고: PUT 및 DELETE와 같은 다른 HTTP 요청 방법도 사용할 수 있지만 일부 브라우저에서만 지원됩니다.
url
유형: 문자열
기본값: 현재 페이지 주소. 요청을 보낼 주소입니다.
username
Type: String
HTTP 액세스 인증 요청에 응답하는 데 사용되는 사용자 이름입니다.
xhr
유형: Function
은 XMLHttpRequest 객체를 반환해야 합니다. 기본값은 IE에서는 ActiveXObject이고 그렇지 않으면 XMLHttpRequest입니다. 향상된 XMLHttpRequest 객체를 재정의하거나 제공하는 데 사용됩니다. 이 매개변수는 jQuery 1.3 이전에는 사용할 수 없었습니다.
콜백 함수
$.ajax()로 얻은 데이터를 처리하려면 콜백 함수(beforeSend, error, dataFilter, 성공, 완료)를 사용해야 합니다.
beforeSend
는 요청을 보내기 전에 호출되며 XMLHttpRequest를 매개변수로 전달합니다.
error
은 요청 오류가 발생하면 호출됩니다. XMLHttpRequest 개체, 오류 유형을 설명하는 문자열 및 예외 개체(있는 경우)
dataFilter
를 전달하면 요청이 성공한 후 호출됩니다. 반환된 데이터와 "dataType" 매개변수의 값을 전달합니다. 그리고 성공 콜백 함수에 전달된 새 데이터(처리된 데이터)를 반환해야 합니다.
success
요청 후 호출되었습니다. 반환된 데이터와 성공 코드가 포함된 문자열을 전달합니다.
complete
성공, 실패에 상관없이 요청이 완료되면 호출되는 함수입니다. XMLHttpRequest 개체와 성공 또는 오류 코드가 포함된 문자열을 전달합니다.
데이터 유형
$.ajax() 함수는 서버에서 제공한 정보를 사용하여 반환된 데이터를 처리합니다. 서버가 반환된 데이터가 XML이라고 보고하는 경우 반환된 결과는 일반 XML 메서드나 jQuery 선택기를 사용하여 반복될 수 있습니다. HTML과 같은 다른 유형이 표시되면 데이터가 텍스트로 처리됩니다.
dataType 옵션을 통해 다른 데이터 처리 방법을 지정할 수도 있습니다. 간단한 XML 외에도 html, json, jsonp, 스크립트 또는 텍스트를 지정할 수도 있습니다.
그 중 텍스트 및 xml 유형으로 반환된 데이터는 처리되지 않습니다. 데이터는 단순히 XMLHttpRequest의 responseText 또는 responseHTML 속성을 성공 콜백 함수에 전달합니다.
참고: 웹 서버에서 보고한 MIME 유형이 선택한 데이터 유형과 일치하는지 확인해야 합니다. 예를 들어 XML의 경우 일관된 결과를 얻으려면 서버에서 text/xml 또는 application/xml을 선언해야 합니다.
html 유형으로 지정하면 HTML이 문자열로 반환되기 전에 포함된 모든 JavaScript가 실행됩니다. 마찬가지로 스크립트 유형을 지정하면 서버 측에서 생성된 JavaScript가 먼저 실행된 후 스크립트가 텍스트 데이터로 반환됩니다.
json 형식으로 지정하면 획득한 데이터를 JavaScript 개체로 구문 분석하고 생성된 개체를 결과로 반환합니다. 이를 달성하기 위해 먼저 JSON.parse()를 사용하려고 시도합니다. 브라우저가 지원하지 않으면 함수를 사용하여 빌드합니다.
JSON 데이터는 JavaScript를 통해 쉽게 파싱할 수 있는 일종의 구조화된 데이터입니다. 획득한 데이터 파일이 원격 서버에 저장되어 있는 경우(다른 도메인 이름, 즉 도메인 간 데이터 수집) jsonp 유형을 사용해야 합니다. 이 유형을 사용하면 요청된 URL에 추가되는 쿼리 문자열 매개변수 callback=?이 생성됩니다. 유효한 JSONP 요청을 완료하려면 서버가 JSON 데이터 앞에 콜백 함수 이름을 추가해야 합니다. 콜백 함수의 매개변수 이름을 지정하여 기본 콜백을 대체하려면 $.ajax()의 jsonp 매개변수를 설정하면 됩니다. 참고: JSONP는 JSON 형식의 확장입니다. 쿼리 문자열 매개변수를 감지하고 처리하려면 일부 서버측 코드가 필요합니다.
script 또는 jsonp 유형이 지정되면 서버에서 데이터가 수신될 때 실제로 XMLHttpRequest 객체 대신 3f1c4e4b6b16bbbd69b2ee476dc4f83a 태그가 사용됩니다. 이 경우 $.ajax()는 더 이상 XMLHttpRequest 객체를 반환하지 않으며 beforeSend와 같은
이벤트 처리기본적으로 Ajax 요청은 GET 메서드를 사용합니다. POST 메소드를 사용하려면 type 매개변수 값을 설정하면 됩니다. 이 옵션은 데이터 옵션의 콘텐츠가 서버로 전송되는 방식에도 영향을 줍니다.
data 옵션에는 key1=value1&key2=value2와 같은 쿼리 문자열이나 {key1: 'value1', key2: 'value2'} 와 같은 매핑이 포함될 수 있습니다. 후자 형식을 사용하는 경우 데이터 재전송자는 쿼리 문자열로 변환됩니다. processData 옵션을 false로 설정하여 이 처리를 피할 수도 있습니다. XML 객체를 서버로 보내려는 경우 이는 적절하지 않을 수 있습니다. 그리고 이 경우 기본 application/x-www-form-urlencoded를 다른 적절한 MIME 유형으로 대체하기 위해 contentType 옵션의 값도 변경해야 합니다.
고급 옵션
전역 옵션은 .ajaxSend, ajaxError 등 등록된 콜백 함수 및 유사한 메서드에 대한 응답을 방지하는 데 사용됩니다. 이는 전송된 요청이 매우 빈번하고 짧은 경우와 같은 일부 경우에 유용하며 ajaxSend에서 비활성화할 수 있습니다.
서버에 HTTP 인증이 필요한 경우 사용자 이름과 비밀번호는 사용자 이름과 비밀번호 옵션을 통해 설정할 수 있습니다.
Ajax 요청은 시간 제한이 있으므로 캡처 및 처리 후 오류 경고를 사용하여 사용자 경험을 개선할 수 있습니다. 요청 시간 초과 매개변수는 일반적으로 기본값으로 유지되거나 jQuery.ajaxSetup을 통해 전역적으로 설정됩니다. 시간 초과 옵션은 특정 요청에 대해 거의 재설정되지 않습니다.
기본적으로 요청은 항상 전송되지만 브라우저가 캐시에서 데이터를 검색할 수 있습니다. 캐시된 결과 사용을 비활성화하려면 캐시 매개변수를 false로 설정합니다. 마지막 요청 이후 데이터가 변경되지 않은 경우 오류를 보고하려면 ifModified를 true로 설정하면 됩니다.
scriptCharset을 사용하면 스크립트 또는 jsonp 유사한 데이터에 사용되는 3f1c4e4b6b16bbbd69b2ee476dc4f83a 태그가 있는 요청에 대한 특정 문자 집합을 설정할 수 있습니다. 이는 스크립트와 페이지 문자 집합이 다를 때 특히 유용합니다.
Ajax의 첫 글자는 비동기식의 첫 글자로, 모든 작업이 병렬적이고 완료 순서에는 관계가 없다는 의미입니다. $.ajax()의 async 매개변수는 항상 true로 설정됩니다. 이는 요청이 시작된 후에도 다른 코드가 계속 실행될 수 있음을 나타냅니다. 이 옵션을 false로 설정하는 것은 권장되지 않습니다. 이는 모든 요청이 더 이상 비동기적이지 않음을 의미하며, 이로 인해 브라우저가 잠길 수도 있습니다.
$.ajax 함수는 생성된 XMLHttpRequest 객체를 반환합니다. 일반적으로 jQuery는 이 객체를 내부적으로 처리하고 생성하지만 사용자는 xhr 옵션을 통해 자체 생성된 xhr 객체를 전달할 수도 있습니다. 반환된 개체는 일반적으로 삭제되지만 여전히 요청을 관찰하고 조작하기 위한 하위 수준 인터페이스를 제공합니다. 예를 들어 객체에 대해 .abort()를 호출하면 요청이 완료되기 전에 요청이 일시 중단될 수 있습니다.
이 글에서는 ajax()의 사용법과 관련 지식을 자세히 설명하고 있습니다. 더 많은 Ajax 지식을 알고 싶다면 PHP 중국어 홈페이지를 주목해주세요.
관련 권장사항:
jQuery+ajax 동적 연산 양식 tr td 단계 자세한 설명
jquery+ajax는 iframe 적용 시 높이를 적응적으로 만듭니다.
JSONP는 ajax 교차 도메인 문제를 해결합니다(코드 포함)
위 내용은 jQuery ajax 정보 - ajax() 사용 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!