write less, do more.
jQuery.ajax()는 비동기 HTTP 요청을 수행할 때 쓴다.
jQuery.ajax(url [, settings])의 실로 간단한 함수 표기지만 settings에 들어갈 수 있는 내용이 꽤나 복잡하다. 표기대로 모든 세팅 항목은 선택사항이고, 디폴트 설정은 $.ajaxSetup()을 이용해 지정할 수 있다.
1. accepts: 응답받고 싶은 형식을 서버에게 알려주는데 쓰인다. text/* 라면 텍스트 형식이면 어떤 것이든 괜찮다는 의미로 서버에게 전달되는 것이다.
2. async: 기본값은 true이고, false로 바꾸는 경우 동기 요청이 된다. 동기 요청인 경우 서버로부터 응답이 오기까지 브라우저가 락된다는 의미가 된다. dataType이 jsonp이거나 크로스-도메인 요청인 경우 false로 세팅할 수 없다.
3. beforeSend: ajax 요청 전에 필요한 동작을 지정할 수 있다.
4. cache: 캐쉬 옵션. false인 경우 요청 페이지가 브라우저에 의해 캐시되지 않도록 한다.
5. complete: 요청이 완전히 끝난 다음에 호출된다. (success, error 콜백 이후에.)
6. contents: jQuery가 응답을 어떻게 파싱할 것인지에 대한 방법을 결정해주는 설정. (잘 모르겠음.)
7. contentType: 서버에게 전달할 때 알려주는 데이터 형식. 기본값은 'application/x-www-form-urlencoded; charset=UTF-8'. false 값을 지정하는 경우엔 jQuery에게 컨텐트 유형 헤더를 설정하지 말라는 의미가 된다.
9. context: ajax 관련 콜백의 컨텍스트를 지정한다.
10. converters: 특정 데이터 형식에 대한 converter를 지정해줄 수 있다.
11. crossDomain: 크로스-도메인 요청 (such as JSONP)을 같은 도메인에서 강제로 호출하고 싶은 경우 true 값을 준다.
* JSONP: JSON with Padding. 다른 도메인으로부터 데이터를 가져오고 싶은 경우 사용하게 되는 편법. cross-domain 이슈를 회피하기 위해 json 형식의 데이터를 script 요소로 감싸 실행시키는 것처럼 하여 데이터를 가져오는 기법.
12. data: 서버로 전달할 데이터. 데이터가 query string 형태로 변환되는 것을 원하지 않으면 processData를 false로 설정해주어야 한다.
13. dataFilter: XMLHttpRequest의 raw 응답 데이터를 핸들링하기 위한 함수를 지정할 수 있다.
14. dataType: 서버의 응답으로부터 예상되는 데이터 형식. 기본적으론 jQuery가 추측해준다.
15. error: 요청이 실패했을 때의 콜백.
16. global:
17. headers: XMLHttpRequest 전송을 사용하여 요청과 함께 전송할 추가 key/value 쌍.
18. ifModified:
19. isLocal: 현재 환경을 '로컬'로 인식하도록 할 수 있다.
20. jsonp: JSONP 요청에서 쿼리 스트링 'callback='의 'callback' 대신 사용할 이름을 오버라이딩 한다.
21. jsonpCallback: JSONP 요청의 콜백 함수 이름을 지정한다.
22. method: GET, POST, PUT, ..
23. mimeType: XMLHttpRequest mime type을 재정의한다.
* MIME: Multipurpose Internet Mail Extentions. 전송된 문서의 형식을 알려주기 위한 메커니즘. type/subtype의 구조로 '/'로 구분해 type과 subtype으로 나뉜다. 공백은 허용되지 않고, 소문자로 쓰는것이 관례. type은 개별 타입과 멀티파트 타입으로 구분된다.
개별 타입은 text, image, audio, video, 마지막으로 이진 데이터 형식의 application으로 구분된다. 특정 subtype이 없는 텍스트엔 text/plain이 쓰이고, 특정 subtype이 없는 이진 데이터엔 application/octet-stream이 쓰인다.
멀티파트 타입은 multipart/form-data, multipart/byteranges로 구분되는데 multipart/form-data는 브라우저에서 서버로 HTML Form의 내용을 전송할 때 쓰인다.
24. password: HTTP 엑세스 인증 요청에 대한 응답으로 XMLHttpRequest와 함께 사용할 암호.
25. processdata: object 형식의 데이터가 전달될 때 쿼리 스트링으로 변환할 것인지 여부를 지정한다.
26. scriptCharset: 크로스-도메인 요청같은 것을 할 때 로컬 페이지의 charset과 원격 스크립트의 charset이 같지 않을 때 쓴다.
27. statusCode: 각종 응답 코드에 대한 동작을 지정할 수 있다.
28. success: 요청이 성공했을 때의 콜백.
29. timeout: 요청에 대한 타임 아웃을 지정할 수 있다. '0'인 경우 무한정 기다린다.
30. traditional: traditional style의 param 직렬화를 사용하고 싶은 경우에 true를 지정하면 된다.
31. type: alias for 'method'
32. url: URL
33. username: HTTP 엑세스 인증 요청에 대한 응답으로 XMLHttpRequest와 함께 사용할 사용자 이름.
34. xhr: XMLHttpRequest 객체를 만들기 위한 콜백.
35. xhrFields: 네이티브 XMLHttpRequest 객체를 설정할 field-name/field-value 쌍.