-
2023 - 07 - 02 Ajax 매서드 (JQuery)Today I Learned/TIL 07 2023. 7. 3. 17:23
https://take-it-into-account.tistory.com/66
Ajax는 Asynchronous JavaScript and XML의 줄임말로, 자바스크립트와 XML을 이용해서 비동기 식으로 서버와 통신한다. Ajax는 프로그램 언어가 아니다.
$.ajax({ url : requestURL (필수입력) type: 'GET' (통신방식 (POST, GET) 등을 지정). async: true, data: JSON.stringify(requestParam), (서버로 보낼 데이터를 입력) dataType: "json" 통신의 결과로 넘어올 데이터 종류를 지정한다. timeout: 10000, (선택사항) contentType: "application/json" beforeSend:function(){ $(`.wrap-loading`).removeClass(`display-none`); }, complete:function(){ $(`.wrap-loading`).addClass(`display-none`); }, success: function(data) { // 전송에 성공하면 실행될 코드; if(successFunction!=undefined){ successFunction(data)}; }, error:function(request, status, error){ // 전송에 실패하면 실행될 코드; alert("code:" + request.status + "₩n" + "message:" + request.responseText + "₩n" + "error:" + error); const err = JSON.parse(request, responseText); alert(err.resData[0].errorMsg){ errorFunction(); } $(`.wrap-loading`).addClass(`display-none`); } fail : function(){ alert("인터넷 연결 상태를 확인해주세요.") $(`.wrap-loading`).addClass(`display-none`); } }); } });
async (비동기 통신)
true :기본값. 비동기(요청을 보낸 후 응답결과와는 상관없이, 다음 방식이 동작함)
false: 동기. (요청을 보낸 후 응답결과를 받아야지만 다음 동작이 이뤄짐)
contentType (전송헤더의 타입)
서버에 데이터를 보낼 때 사용 content-type의 헤더 값
application/json; charset-utf-8이 흔히 쓰임.
dataType (서버에서 어떤 타입을 받을지 정의)
text, html, xml, json, jsonp, and script 등 있음.
{"success":true} 와 같은 구조의 값을 받으려면 dataType: "json"으로 작성해야 함.
"success"와 같은 문자열 값을 받으려면 dataType: "test"로 작성
<div> SUCCESS! </div> 같은 결괏값을 받을면 dataType: "html"로 작성
timeout (요청시간 제한)
제한시간 (밀리초) 설정. 제한시간 내 요청 미완료 시 요청 취소되거나 error콜백이 정의되어 있다면 호출됨
type (HTTP 통신의 종류)
HTTP 통신의 종류를 설정. 기본값은 "GET"
GET, POST, PUT, DELETE 등이 있음.
RESTful에 "PUT" 또는 "DELETE"를 지정할 수 있지만 모든 브라우저가 지원하는 것은 아님.
complete (function)
Ajax통신 완료될 때 호출되는 함수. success나 error가 호출된 후 호출됨.
beforeSend (function)
Ajax 요청 전에 실행되는 함수. 반환값을 false로 설정하면 Ajax 전송 취소
error (function)
Ajax 통신 실패 시 호출되는 콜백함수
success (function)
Ajax 통신에 성공할시 호출되는 콜백함수
함수의 응답 본문은 이 함수의 첫 번째 매개변수로 전달되며, dataType 프로퍼티에 명시한 형태로 구성되고, 두 번째 매개변수는 상태값을 나타내는 문자열이며 항상 success로 나타낸다.
JSON.stringify
Json을 string(문자열)형태로 변환
JSON.parse
string(문자열)을 Json 형태로 변환
<script> // request라는 id를 가진 버튼 클릭 시 실행. $("#request").click(function(){ const params = { name : $("#name").val(), // id앞에는 #, class앞에는 . gender : $("gender").val(), age : $("age").val(), phonenumber : $("phonenumber").val(), }) // ajax 통신 $.ajax({ type: "POST", url: "/test/ajax", data: params, success: function(res){ alert(res.code) // 응답코드>0000 }, error: function(XMLHttpRequest, textStatus, errorThrown) { alert("통신 실패") } }) }); </script>
'Today I Learned > TIL 07' 카테고리의 다른 글
2023 - 07 - 06 트랜젝션 (Transaction) ACID (원자성, 일관성, 격리성, 지속성), 락(Lock), 락킹 수준, 교착상태 (Deadlock), 트랜잭션의 격리 수준 (0) 2023.07.06 2023 - 07 - 05 액세스 토큰 Access Token, 리프레쉬 토큰 Refresh Token (0) 2023.07.05 2023 - 07 - 04 TCP, UDP, 소켓(socket.io), 웹소켓, 패킷 (0) 2023.07.04 2023 - 07 - 03 코드 가독성을 위한 코드서식 관리도구 Prettier (0) 2023.07.04 2023 - 07 - 01 Node.js Fetch 메서드 (GET, POST, PUT, DELETE) (0) 2023.07.03