$.post와 $.ajax의 차이점
데이터 파라미터와 관련된 차이점을 아는 사람이 있는지 궁금합니다.
나는 가지고 있다$.post
를 필요로 하는 방법$('#myform').serialize()
데이터 매개 변수 및 작동으로 사용됩니다.
를 사용하여 같은 시도를 하면$.ajax()
데이터 파라미터가 올바르지 않은 것 같아서 동작하지 않습니다.
위와 같은 차이점과 사용법을 아는 사람이 있습니까?.serialize
?
이 jquery 포럼 스레드는 다음과 같이 요약합니다.
$.post
를 사용하는 약식입니다.$.ajax
POST 요구의 경우는, 이 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
'programing' 카테고리의 다른 글
Axios - JSON 응답을 읽는 방법 (0) | 2023.03.23 |
---|---|
메뉴 제목에도 _title() 필터가 적용되는 이유는 무엇입니까? (0) | 2023.03.23 |
클라이언트 라우팅(리액트라우터 사용) 및 서버 측 라우팅 (0) | 2023.03.23 |
Angular에서 여러 컨트롤러를 사용하는 방법JS가 맞습니까? (0) | 2023.03.23 |
JObject를 사용하여 JSON을 즉시 생성 (0) | 2023.03.23 |