jQuery .ajax() - POST 요청에 쿼리 매개 변수를 추가하시겠습니까?
jQuery AJAX를 사용하여 URL에 쿼리 매개 변수를 추가하려면 다음 작업을 수행합니다.
$.ajax({
url: 'www.some.url',
method: 'GET',
data: {
param1: 'val1'
}
)}
그 결과 다음과 같은 URL이 생성됩니다.www.some.url?param1=val1
방법이 POST일 때는 어떻게 해야 하나요?그럴 때면data
더 이상 쿼리 매개 변수로 추가되지 않습니다. 대신 요청 본문을 구성합니다.
Ajax 요청 전에 수동으로 URL에 매개 변수를 추가할 수 있다는 것을 알고 있지만, Ajax 호출 전에 실행해야 할 ~5줄보다 짧은 명확한 방법을 놓치고 있다는 느낌이 들 뿐입니다.
jQuery.param()을 사용하면 직접 URL에 추가할 수 있는 쿼리 문자열로 개체의 속성을 직렬화할 수 있습니다.
$.ajax({
url: 'http://www.example.com?' + $.param({ paramInQuery: 1 }),
method: 'POST',
data: {
paramInBody: 2
}
});
@Ates Goral에 대해 감사합니다.jQuery.ajaxPrefilter()
팁. 내 문제는 내가 바꿀 수 없다는 것이었습니다.url
할 수밖에 없었기 때문에kendoGrid
그리고 백엔드 웹 API는 지원하지 않았습니다.kendoGrid
의 서버 페이징 옵션(예:page
,pageSize
,skip
그리고.take
또한 백엔드 페이징 옵션은 다른 이름의 쿼리 매개 변수여야 합니다.그래서 부동산을 들여놓아야 했습니다.data
사전 필터링을 트리거합니다.
var grid = $('#grid').kendoGrid({
// options here...
dataSource: {
transport: {
read: {
url: url,
contentType: 'application/json',
dataType: 'json',
type: httpRequestType,
beforeSend: authentication.beforeSend,
data: function(data) {
// added preFilterMe property
if (httpRequestType === 'POST') {
return {
preFilterMe: true,
parameters: parameters,
page: data.page,
itemsPerPage: data.pageSize,
};
}
return {
page: data.page,
itemsPerPage: data.pageSize,
};
},
},
},
},
});
보다시피,transport.read
옵션은 다음에 대해 동일한 옵션입니다.jQuery.ajax()
그리고 프리필터링 비트에서:
$.ajaxPrefilter(function(options, originalOptions, xhr) {
// only mess with POST request as GET requests automatically
// put the data as query parameters
if (originalOptions.type === 'POST' && originalOptions.data.preFilterMe) {
options.url = options.url + '?page=' + originalOptions.data.page
+ '&itemsPerPage=' + originalOptions.data.itemsPerPage;
if (originalOptions.data.parameters.length > 0) {
options.data = JSON.stringify(originalOptions.data.parameters);
}
}
});
언급URL : https://stackoverflow.com/questions/43108096/jquery-ajax-add-query-parameters-to-post-request
'programing' 카테고리의 다른 글
PowerShell cmdlet을 작성할 때 경로를 처리하는 방법은 무엇입니까? (0) | 2023.08.22 |
---|---|
이전에 Ajax 사용데이터를 수정하려면 전송 (0) | 2023.08.22 |
도커 컨테이너를 데이터 볼륨으로 백업하려면 어떻게 해야 합니까? (0) | 2023.08.22 |
SQL에서 열 값의 발생 횟수를 효율적으로 계산하는 방법은 무엇입니까? (0) | 2023.08.22 |
스파이더 엔진에 의해 결과 행이 두 배로 증가합니다. (0) | 2023.08.22 |