>  기사  >  웹 프론트엔드  >  Ajax의 기본 구문은 무엇입니까? Ajax 구문 세부정보

Ajax의 기본 구문은 무엇입니까? Ajax 구문 세부정보

寻∝梦
寻∝梦원래의
2018-09-10 11:38:431803검색

이 글에서는 ajax의 기본 문법 구조를 중심으로 설명하고, 모두가 더 명확하게 배울 수 있도록 예문을 제시합니다. 지금 이 기사를 살펴보겠습니다

코드 템플릿:

$.ajax({
             type: "POST",
             url: "/login",
             contentType: 'application/x-www-form-urlencoded;charset=utf-8',
             data: {username:$("#username").val(), password:$("#password").val()},
             dataType: "json",
             success: function(data){
                         console.log(data);
                      },
             error:function(e){
                         console.log(e);
             }
         })

Parameters

  • #🎜 🎜# 옵션

  • 유형: 개체

    선택사항. AJAX 요청 설정. 모든 옵션은 선택 사항입니다.

  • async

  • 유형: 부울

    기본값: true. 기본적으로 모든 요청은 비동기식입니다. 동기 요청을 보내야 하는 경우 이 옵션을 false로 설정하세요.

    동기식 요청은 브라우저를 잠그며 다른 사용자 작업은 요청이 완료될 때까지 기다려야 실행될 수 있습니다.

  • beforeSend(XHR)

  • 유형: 기능

    요청을 보내기 전 사용자 정의 HTTP 헤더 추가와 같이 XMLHttpRequest 객체를 수정하는 함수입니다.

    XMLHttpRequest 객체가 유일한 매개변수입니다.

    Ajax 이벤트입니다. false가 반환되면 이 ajax 요청을 취소할 수 있습니다.

  • cache

  • Type: 부울

    기본값: true, dataType 스크립트 및 jsonp의 기본값은 false입니다. 이 페이지를 캐시하지 않으려면 false로 설정하세요.

    jQuery 1.2 새로운 기능.

  • complete(XHR, TS)

  • 유형: 기능

    요청 완료 후 콜백 함수(요청 성공 또는 실패 후 호출됨)

    Parameters: XMLHttpRequest 객체와 요청 유형을 설명하는 문자열.

    Ajax 이벤트입니다.

  • contentType

  • Type: 문자열

    기본값: "application/ x-www-form-urlencoded". 서버에 정보를 보낼 때의 콘텐츠 인코딩 유형입니다.

    기본값은 대부분의 상황에 적합합니다. 컨텐츠 유형을 $.ajax()에 명시적으로 전달하면 (전송할 데이터가 없더라도) 확실히 서버로 전송됩니다.

  • context

  • Type: Object

    이 개체는 다음을 설정하는 데 사용됩니다. up Ajax 관련 콜백 함수의 컨텍스트입니다. 즉, 콜백 함수에서 this가 이 개체를 가리키도록 합니다(이 매개변수가 설정되지 않은 경우 이 AJAX 요청을 호출할 때 전달된 옵션 매개변수를 가리킵니다). 예를 들어 DOM 요소를 컨텍스트 매개변수로 지정하면 성공 콜백 함수의 컨텍스트가 이 DOM 요소로 설정됩니다.

    이렇게 하면 됩니다:

    $.ajax({ url: "test.html", context: document.body, success: function(){
            $(this).addClass("done");
          }});
(자세한 내용을 보려면 PHP 중국어 웹사이트를 방문하세요.

AJAX 개발 매뉴얼 칼럼에서 알아보기)

  • data

  • Type: String

    # 🎜🎜#서버 데이터로 보내기. 요청 문자열 형식으로 자동 변환됩니다. GET 요청의 URL에 추가됩니다. 이 자동 변환을 비활성화하려면 processData 옵션 설명을 참조하세요. 키/값 형식이어야 합니다. 배열인 경우 jQuery는 자동으로 동일한 이름을 다른 값에 할당합니다. 예를 들어, {foo:["bar1", "bar2"]}는 '&foo=bar1&foo=bar2'로 변환됩니다.

  • dataFilter
  • Type: 함수
  • Ajax에서 반환한 원본 데이터 전처리를 위한 함수입니다. data와 type이라는 두 개의 매개변수를 제공합니다. data는 Ajax가 반환한 원본 데이터이고 type은 jQuery.ajax를 호출할 때 제공되는 dataType 매개변수입니다. 함수에서 반환된 값은 jQuery에 의해 추가로 처리됩니다.

  • dataType
  • Type: 문자열
  • 에서 반환한 예상 데이터 유형 서버. 지정하지 않으면 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

  • Type: String

    jsonp 요청에서 반복 쓰기 콜백 함수의 이름입니다. 이 값은 "onJsonPLoad=?"가 서버에 전달되도록 하는 {jsonp:'onJsonPLoad'}와 같은 GET 또는 POST 요청에서 URL 매개변수의 "콜백" 부분을 대체하는 데 사용됩니다.

  • jsonpCallback

  • Type: String

    jsonp 요청에 대한 콜백 지정 함수 이름. 이 값은 jQuery가 자동으로 생성한 임의의 함수 이름 대신 사용됩니다. 이는 주로 jQuery가 고유한 함수 이름을 생성하여 요청을 더 쉽게 관리하고 콜백 함수 및 오류 처리를 제공하는 데 사용됩니다. 브라우저가 GET 요청을 캐시하도록 하려는 경우 이 콜백 함수 이름을 지정할 수도 있습니다.

  • password

  • Type: String

    은 HTTP에 응답하는 데 사용됩니다. 액세스 인증 요청된 비밀번호

  • processData

  • Type: Boolean

    기본값 : 진실. 기본적으로 data 옵션을 통해 전달된 데이터가 객체인 경우(기술적으로 말하면 문자열이 아닌 한) 처리되어 기본 콘텐츠 유형인 "application/x와 일치하는 쿼리 문자열로 변환됩니다. -www-form-urlencoded" ". 변환하고 싶지 않은 DOM 트리 정보나 기타 정보를 보내려면 false로 설정하세요.

  • scriptCharset

  • Type: String

    dataType이 요청된 경우에만 "jsonp" 또는 "script"이고 유형이 "GET"인 경우 문자 세트 수정을 강제하는 데 사용됩니다. 일반적으로 로컬 및 원격 콘텐츠 인코딩이 다른 경우에만 사용됩니다.

  • success

  • Type: Function

    요청 성공 후 콜백 기능 .

    Parameters: 서버에서 반환하고 dataType 매개변수에 따라 처리되는 데이터입니다. 상태를 설명하는 문자열입니다.

    Ajax 이벤트입니다.

  • traditional

  • Type: Boolean

    전통적인 방식을 사용하려는 경우 데이터를 직렬화하는 방법을 사용하고 이를 true로 설정합니다. Tools 카테고리의 jQuery.param 메소드를 참고하세요.

  • timeout

  • Type: Number

    요청 시간 초과 설정(밀리초) ) ). 이 설정은 전역 설정을 재정의합니다.

  • 유형

  • 유형: 문자열

    기본값: "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" 매개변수의 값을 전달합니다. 그리고 성공 콜백 함수에 전달된 새 데이터(처리된 데이터)를 반환해야 합니다.

성공

요청 후 호출되었습니다. 반환된 데이터와 성공 코드가 포함된 문자열을 전달합니다.

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 옵션의 값도 변경해야 합니다. .

Advanced options

global 옵션은 .ajaxSend, ajaxError 등 등록된 콜백 함수 및 이와 유사한 메서드에 대한 응답을 방지하는 데 사용됩니다. 이는 전송된 요청이 매우 빈번하고 짧은 경우와 같은 일부 경우에 유용하며 ajaxSend에서 비활성화할 수 있습니다.

서버에 HTTP 인증이 필요한 경우 사용자 이름과 비밀번호 옵션을 통해 사용자 이름과 비밀번호를 설정할 수 있습니다.

Ajax 요청은 시간 제한이 있으므로 오류 경고가 캡처 및 처리되며 사용자 경험을 개선하는 데 사용될 수 있습니다. 요청 시간 초과 매개변수는 일반적으로 기본값으로 유지되거나 jQuery.ajaxSetup을 통해 전역적으로 설정됩니다. 시간 초과 옵션은 특정 요청에 대해 거의 재설정되지 않습니다.

기본적으로 요청은 항상 전송되지만 브라우저가 캐시에서 데이터를 검색할 수 있습니다. 캐시된 결과 사용을 비활성화하려면 캐시 매개변수를 false로 설정합니다. 마지막 요청 이후 데이터가 변경되지 않은 경우 오류를 보고하려면 ifModified를 true로 설정하면 됩니다.

scriptCharset을 사용하면 스크립트 또는 jsonp 유사한 데이터에 사용되는 3f1c4e4b6b16bbbd69b2ee476dc4f83a 태그가 있는 요청에 대한 특정 문자 집합을 설정할 수 있습니다. 이는 스크립트와 페이지 문자 집합이 다를 때 특히 유용합니다.

Ajax의 첫 글자는 비동기식의 첫 글자로, 모든 작업이 병렬이며 완료 순서에는 관계가 없다는 의미입니다. $.ajax()의 async 매개변수는 항상 true로 설정됩니다. 이는 요청이 시작된 후에도 다른 코드가 계속 실행될 수 있음을 나타냅니다. 이 옵션을 false로 설정하는 것은 권장되지 않습니다. 이는 모든 요청이 더 이상 비동기적이지 않음을 의미하며 이로 인해 브라우저가 잠길 수도 있습니다.

$.ajax 함수는 생성된 XMLHttpRequest 객체를 반환합니다. 일반적으로 jQuery는 이 객체를 내부적으로 처리하고 생성하지만 사용자는 xhr 옵션을 통해 자체 생성된 xhr 객체를 전달할 수도 있습니다. 반환된 개체는 일반적으로 삭제되지만 요청을 관찰하고 조작할 수 있는 하위 수준 인터페이스를 제공합니다. 예를 들어 객체에 대해 .abort()를 호출하면 요청이 완료되기 전에 요청이 일시 중단될 수 있습니다.

이 기사는 여기에서 끝납니다. (자세한 내용을 보려면 PHP 중국어 웹사이트 AJAX 사용자 매뉴얼 열을 참조하세요.) 궁금한 사항이 있으면 아래에 메시지를 남겨주세요. .

위 내용은 Ajax의 기본 구문은 무엇입니까? Ajax 구문 세부정보의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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