programing

$.post와 $.ajax의 차이점

lastmoon 2023. 3. 23. 23:06
반응형

$.post와 $.ajax의 차이점

데이터 파라미터와 관련된 차이점을 아는 사람이 있는지 궁금합니다.

나는 가지고 있다$.post를 필요로 하는 방법$('#myform').serialize()데이터 매개 변수 및 작동으로 사용됩니다.

를 사용하여 같은 시도를 하면$.ajax()데이터 파라미터가 올바르지 않은 것 같아서 동작하지 않습니다.

위와 같은 차이점과 사용법을 아는 사람이 있습니까?.serialize?

jquery 포럼 스레드는 다음과 같이 요약합니다.

$.post를 사용하는 약식입니다.$.ajaxPOST 요구의 경우는, 이 2개를 사용해도 큰 차이는 없습니다.둘 다 같은 기본 코드를 사용할 수 있습니다. $.get같은 원리로 동작합니다.

: addyosmani

한마디로 다음과 같습니다.

$.post( "/ajax", {"data" : json }) 

다음과 같습니다.

$.ajax({ 
  type: "POST", 
  url: "/ajax", 
  data: {"data": json} 
});

여기서의 문제는 사실이 아니다.$.ajax()는 동작하지 않습니다.Ajax 요구에 type 파라미터를 설정하지 않았기 때문에 기본 GET 요구가 되어 있습니다.데이터는 get을 위해 쿼리 스트링을 통해 전송되며, 백엔드에서 post 파라미터로 예상되는 경우 데이터를 읽지 않습니다.

$.post와의 통화일 뿐이다.$.ajax(), 를 사용해 주세요.type 문서를 읽으시면 아시게 될 겁니다$.ajax()디폴트는 위에서 설명한 바와 같이 GET입니다.

jQuery docs의 jQuery.post 페이지에 접속하면 $.duery 요구와 타입이 설정되어 있습니다.문서를 다시 읽어보세요.

온라인 문서를 다시 읽은 후 $.ajax가 아닌 $.post를 사용하기로 결정했습니다.

$.ajax 메서드의 데이터 파라미터는 $.post 메서드와는 다른 동작을 합니다.정확한 것은 아니지만 차이가 있습니다.

$.ajax를 사용하고 싶은 유일한 이유는 이벤트를 처리할 수 있고 $.post를 사용할 수 있다는 것을 깨닫지 못했기 때문입니다.

결국 이렇게 된 거야

function GetSearchItems() {
    var url = '@Url.Action("GetShopSearchResults", "Shop", New With {.area = "Shop"})';
    var data = $("#ShopPane").serialize();
    // Clear container
    $('#shopResultsContainer').html('');
    // Retrieve data from action method
    var jqxhr = $.post(url, data);
    // Handle results
    jqxhr.success(function(result) {
        //alert("ajax success");
        $('#shopResultsContainer').html(result.ViewMarkup);
    });
    jqxhr.error(function() {
        //alert("ajax error");
    });
    jqxhr.complete(function() {
        //alert("ajax complete");
    });

    // Show results container
    $("#shopResultsContainer").slideDown('slow');
}

JQuery 3.x

jqXHR.success(), jqXHR.error() 및 jqXHR.complete() 콜백 메서드는 jQuery 3.0에서 삭제됩니다.대신 jqXHR.done(), jqXHR.fail() 및 jqXHR.always()를 사용할 수 있습니다.

var jqxhr = $.post(url, data);
// Handle results
jqxhr.done(function(result) {
    //alert("ajax success");
});
jqxhr.fail(function() {
    //alert("ajax error");
});
jqxhr.always(function() {
    //alert("ajax complete");
});

https://api.jquery.com/jquery.post/

이 값을 데이터 매개 변수로 지정하는 것입니까? $.post의 줄임말일 뿐이다$.ajax다음 사항을 예상하고 있습니다.

$.ajax({
    type : 'POST',
    url : url,
    data : data,
    success : success,
    dataType : dataType
});

인정된 답변에는 보충적인 의미로 "$.ajax 메서드의 데이터 파라미터는 $.post 메서드와는 다른 작업을 하고 있습니다.정확한 것은 아니지만 차이가 있습니다."라고 기재되어 있습니다.

다음을 사용해 보십시오.

    { 
        ... 
        data: JSON.stringify(yourJsonData), 
        ... 
    }

그렇지 않으면 json 개체가 payload에 URL 인코딩 문자열로 삽입됩니다.

$.ajax를 사용하여 GET 또는 POST 요청을 할 수 있습니다.$.post를 사용하여 포스트 요청만 할 수 있습니다.$.get을 사용하면 요청만 받을 수 있습니다.

$.ajax()    // Performs an async AJAX request
$.get()     // Loads data from a server using an AJAX HTTP GET request
$.post()    // Loads data from a server using an AJAX HTTP POST request

»$.ajax하지만, 「동기」에서는할 수 .$.post라는 것은의미합니다.동기화란 반환된 결과를 얻을 수 있음을 의미합니다.

var tmp;
$.ajax({
    'async': false,
    'type': "POST",
    'global': false,
    'dataType': 'html',
    'url': "Your Url",
    'data': {'type': 'data'},
    'success': function (data) {
        tmp = data;
    }
});
alert(tmp);

언급URL : https://stackoverflow.com/questions/12820074/difference-between-post-and-ajax

반응형