Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

jQuery post() 요청을 만드는 방법

웹 앱을 만들 때 사용자가 입력한 데이터에서 무언가를 만들어야 하는 것은 불가피합니다. 누군가가 가입 양식을 통해 정보를 제출할 때 새 사용자 계정을 만들거나 멋진 새 레시피 정리 앱에서 새 레시피를 만들 수 있습니다. 양식의 사용자 데이터에서 데이터베이스에 저장된 레시피의 새로운 새 인스턴스로 이동하려면 HTTP POST가 필요합니다. 요구.

POST 요청은 양식의 데이터를 백엔드 또는 API에서 생성하고 데이터베이스에 저장할 수 있는 서버로 보내는 것입니다. 기본적으로 양식을 제출하려면 리디렉션 또는 페이지 새로고침이 필요합니다. 작은 앱에서는 이것이 완벽하지만 더 빠른 로딩 경험을 제공하기를 원하므로 이 동작을 재정의할 것입니다.

jQuery examined post() 사용 request를 사용하면 HTTP 요청을 하고, 응답을 받고, 리디렉션이나 새로 고침 없이 데이터를 표시하는 방법을 선택할 수 있습니다! post() 이 모든 작업을 수행하려면 필요합니다.

post() 자세히 살펴보기

HTTP 요청은 잡기 게임과 같습니다. 브라우저는 API 끝점을 통해 서버에 요청을 던지고 서버는 응답을 던집니다. post()가 하는 일은 앱의 데이터베이스에 생성되어 저장될 데이터를 엔드포인트로 보내는 것입니다.

위의 모든 사항을 고려하여 examined post()를 가정할 수 있습니다. 몇 가지 주장이 필요합니다. 맞죠? 오른쪽! examined post() 최대 4개의 인수를 사용하지만 목적상 URL 대상과 해당 대상으로 보내는 데이터의 두 가지 주요 사항에 중점을 둡니다.

$.post(‘/recipes’, data) 

레시피 구성 앱의 예를 들어 jQuery로 시작합니다. 선택기 $. post() 를 호출하여 메소드를 사용하여 데이터를 ‘/recipes.’의 URL로 보내고 있습니다. 여태까지는 그런대로 잘됐다. 우리는 우리 서버에 일부 데이터를 던졌습니다. 이제 응답을 받을 준비가 되었습니다!

응답으로 우리에게 돌아오는 것은 jQuery XHR 로 알려진 것입니다. 객체 또는 jqXHR , Promise 인터페이스를 구현합니다. 걱정할 것 없습니다! 마지막 문장이 무섭게 들릴 수 있지만, 응답은 단지 목적어일 뿐입니다. jQuery의 편리한 done() 방법을 사용하면 해당 개체를 더 읽기 쉬운 형식으로 구성할 수 있습니다.

참가자의 81%는 부트캠프에 참석한 후 기술 직업 전망에 대해 더 자신감을 느꼈다고 말했습니다. 지금 부트캠프에 참여하십시오.

부트캠프 졸업생은 부트캠프 시작부터 첫 직장을 찾는 데까지 6개월도 채 걸리지 않았습니다.

catch 유추 게임을 유지하면서 examined post()를 사용하여 서버에 데이터를 던집니다. . jqXHR이 반환됩니다. done() 에 전달하는 객체 그래서 우리는 우리가 잡은 것을 볼 수 있습니다. 이제 examined post()를 자세히 살펴보았으므로 , 사용 방법을 알아보겠습니다.

제이쿼리 포스트()

시작하려면 일반 HTML 양식이 있습니다.

script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>

<h2>
  New Recipe
</h2>
<form id='new-recipe'>
<label for="name">Recipe Name</label><br>
<input type="text" name="name" id="name"><br>
<label for="ingredients">Ingredients</label><br>
<input type="text" name="ingredients" id="ingredients"><br>
<button type="submit">
Create Recipe 
</button>
</form>

다음과 같이 양식을 표시합니다.

jQuery post() 요청을 만드는 방법

기본적으로 submit 버튼을 클릭하면 브라우저가 새로 고쳐지거나 리디렉션됩니다. 페이지 새로 고침이나 리디렉션을 피하고 싶다는 사실을 기억하십니까? 페이지를 새로 고치거나 리디렉션하면 양식의 모든 데이터가 손실됩니다. 리디렉션 및 데이터 손실을 방지하기 위해 JavaScript preventDefault() 가 있습니다. 방법.

<script>
  $(document).ready(() => {
    $('#new-recipe').submit((event) => {
      event.preventDefault();
    })
  })

</script>

페이지 또는 document가 나올 때까지 기다리고 있습니다. 로드된 다음 new-recipe. ID가 있는 양식에서 제출 버튼이 클릭되는 것을 수신 대기합니다. 이것은 .submit()로 수행됩니다. 클릭 이벤트를 인수로 사용하는 콜백 함수를 사용하는 메서드입니다. 검토하기 위해 JavaScript 콜백 함수는 나중에 실행할 다른 함수에 인수로 전달할 수 있는 함수입니다.

이 콜백 함수 내에서 preventDefault()를 사용하여 기본 리디렉션을 중지할 수 있습니다. . 이제 더 이상 리디렉션하지 않고 일부 데이터를 서버에 제출할 수 있습니다.

examined post()를 호출하기 전에 데이터를 보내려면 데이터가 필요합니다! 이 데이터는 어디에서 얻습니까?

우리는 양식에서 데이터를 얻습니다. 더 이상 리디렉션하지 않기 때문에 양식의 텍스트 입력에 있는 값에 액세스할 수 있습니다. serialize()는 어떻게 되나요? 방법?

serialize() 메소드는 this로 선택한 양식에서 호출됩니다. 예어. serialize() 양식 데이터를 표준 URL 인코딩 표기법의 텍스트 문자열로 변환하여 서버로 보낼 수 있습니다.

양식 데이터를 적절하게 직렬화하면 변수에 저장합니다.

  $(document).ready(() => {
    $('#new-recipe').submit((event) => {
      event.preventDefault();
     var values = $(this).serialize();
    })
  })

이제 values ​​변수에 데이터를 저장했으며 이제 서버로 보낼 수 있습니다!

  $(document).ready(() => {
    $('#new-recipe').submit((event) => {
      event.preventDefault();
     var values = $(this).serialize();
     var posting = $.post('/recipes', values);
    })
  })

examined post() jqXHR 반환 물체? 변수로 저장하고 done() 를 호출할 수도 있습니다. 응답의 압축을 풀고 클라이언트 측에서 선택한 대로 처리합니다.

$(document).ready(() => {
    $('#new-recipe').submit((e) => {
      e.preventDefault();
      var values = $(this).serialize();
      var posting = $.post('/recipes', values);
      posting.done( (data) => {
        var recipe = data;
        $('.recipes').text(recipe["name"]);
        $('.recipes').text(recipe["ingredients"]);
      })
    })
  })

데이터를 수신하여 recipe의 더 읽기 쉬운 변수에 저장한 후 , 이름 및 성분 속성에 액세스할 수 있습니다. 예를 들어 이러한 속성을 <div>에 삽입했습니다. recipes 클래스로 .

jQuery post() 요청을 만드는 방법

결론

여기에서 많은 부분을 다루었습니다! post()에 대한 학습을 ​​축하하기 전에 배운 내용을 빠르게 요약해 보겠습니다.

examined post()의 일반적인 용도 .submit() 안에 있습니다. 콜백 함수로. .submit() 이후 양식 자체에서 호출되는 경우 JavaScript this를 사용할 수 있습니다. 양식의 모든 데이터를 참조하는 키워드 및 serialize() 그것. 직렬화된 데이터를 종종 값이라고 하는 변수에 저장한 후 examined post()를 사용하여 이 값을 목적지 URL로 보낼 수 있습니다. .

jqXHR을 저장하는 것은 좋은 습관입니다. post() 에 의해 반환된 객체 일반적으로 posting라고 하는 변수에서 . 여기에서 handy done()을 사용합니다. 게시 변수에 메서드를 추가하고 이제 서버가 응답한 데이터에 액세스할 수 있습니다. 이제 사용자에게 데이터를 표시하는 방법은 귀하에게 달려 있습니다.

잠시 시간을 내어 examined post()의 복잡한 프로세스를 처리한 것을 축하합니다. ! 자신의 앱을 빌드하는 이 단계에 있다면 오류가 발생한다는 점을 기억하세요. 침착하고 디버그하십시오!