항상 jQuery Ajax에 대한 게시 데이터에서 JSON.stringify를 호출합니다.
또는 해당 사항에 대해 데이터를 사전 처리하는 다른 기능 :)
제 서버측 프레임워크 때문에, 저는 불필요한 보일러 플레이트인 제 데이터를 보내기 전에 항상 JSON.stringify에 전화해야 합니다.
지금 당장은 다음과
$.ajax({
[...]
data: JSON.stringify({ someData: self.someData }),
[...]
});
저는 다음을 선호합니다.
$.ajax({
[...]
data: { someData: self.someData },
[...]
});
아약스 셋업에 대해 알아봤는데 해결책을 찾을 수가 없어서 지금까지...
갱신하다
이것이 필요한 이유는 다음 질문을 참조하십시오.서버 쪽에서 고칠 수는 있겠지만, 지금은 클라이언트 쪽에서 고칠 방법을 찾고 있습니다.
아니요, 객체에서 JSON으로 데이터를 사전 처리하는 기본 제공 방법은 없습니다.그러나 사용할 수 있습니다.ajaxSetup
그리고.beforeSend
당신을 위해 그것을 할 것입니다.
$.ajaxSetup({
beforeSend: function(jqXHR,options){
if ( options.contentType == "application/json" && typeof options.data != "string" ) {
options.data = JSON.stringify(options.data);
}
}
});
이제 당신의 것을 꼭 설정하세요.contentType
로.application/json
if문에 걸리도록 json을 서버로 보내야 하는 요청에 대해.
jQuery.prefilter를 사용하는 대체 접근 방식은 다음과 같습니다.
$.ajaxPrefilter("json", function(options, originalOptions) {
options.data = JSON.stringify(originalOptions.data || null);
options.contentType = "application/json" // content type of *request*
});
$.ajax({
data: {foo: [1,2,3]},
dataType: "json" // expected content type of *response* (must match prefilter, above!)
[...]
});
프리필터가 일치하기 때문에dataType
옵션, 우리는 그것을 수동으로 설정해야 합니다.$.ajax
부탁한다.만약에dataType
요청이 전송되기 전에 프리필터("json")와 일치합니다.data
문자열에 오브젝트를 적용하고 설정합니다.contentType
일치할 헤더("애플리케이션/json").
이것은 모든 미래에 영향을 미칠 전 세계적인 변화임을 명심하십시오.$.ajax
와의 요청dataType: "json"
!
여기 내가 사용하는 jQuery.prefilter 기능(이전 전송 접근 방식보다 개선됨)이 있습니다. 이 기능은 모든 데이터 유형과 일치하며 게시물 또는 풋 요청에 있는 모든 개체를 직렬화합니다.
$.ajaxPrefilter(function (options, org) {
var rtype = options.type.toLowerCase();
if ((rtype === "post" || rtype === "put") && org.data !== null && typeof org.data === 'object') {
options.data = JSON.stringify(org.data);
}
});
도움이 되기를 바랍니다.
사용자 Jquery.getJSON().json 데이터를 직접 얻을 수 있습니다.
$.getJSON('', function(data) {
//you can use data.
});
http://api.jquery.com/jQuery.getJSON/
언급URL : https://stackoverflow.com/questions/17215981/always-call-json-stringify-on-post-data-for-jquery-ajax
'programing' 카테고리의 다른 글
워드프레스용 IIS7에서 URL 다시쓰기 (0) | 2023.10.21 |
---|---|
Powershell을 사용하여 파일 이름을 재귀적으로 변경하는 중 (0) | 2023.10.21 |
ORDER 2개의 옵션 중에서 낮은 숫자를 선택하지 않음으로써 (0) | 2023.10.21 |
OLTP 및 OLAP란 무엇입니까?그들의 차이점은 무엇입니까? (0) | 2023.10.21 |
페이스북 공유자가 항상 잘못된 작성자를 보여줌 (0) | 2023.10.21 |