요청 본문에 유효한 json을 게시하는 jQuery
따라서 jQuery Ajax docs 에 따르면 요청을 보낼 때 쿼리 문자열 형식으로 데이터를 직렬화하지만 설정 processData:false
하면 본문에서 실제 JSON을 보낼 수 있습니다. 불행히도 나는 이것이 일어나는지 먼저 결정하는 데 어려움을 겪고 있으며, 두 번째로 보이는 객체는 서버로 전송되는 것입니다. 내가 아는 것은 서버가 내가 보내는 것을 파싱하지 않는다는 것입니다.
http 클라이언트 를 사용하여 객체 literal을 게시하면 {someKey:'someData'}
작동합니다. 그러나와 함께 jQuery를 사용 data: {someKey:'someData'}
하면 실패합니다. 불행히도 Safari에서 요청을 분석하면 메시지 페이로드가 [object Object]
... 좋아요 ... 파이어 폭스에서 게시물이 비어 있다고 말합니다 ...
자바 측에서 본문 내용을 로깅 할 때 문자 그대로 [object Object]
어떻게 REAL JSON 데이터를 전송합니까?
jQuery에서 보낸 요청과 함께 요청 본문에서 JSON 데이터를 직렬화하는 Java 서비스에 경험이 있습니까?
BTW는 전체 $ .ajax 요청입니다.
$.ajax({
contentType: 'application/json',
data: {
"command": "on"
},
dataType: 'json',
success: function(data){
app.log("device control succeeded");
},
error: function(){
app.log("Device control failed");
},
processData: false,
type: 'POST',
url: '/devices/{device_id}/control'
});
실제 JSON 요청은 다음과 같습니다.
data: '{"command":"on"}',
실제 JSON 문자열을 보내는 곳. 보다 일반적인 솔루션의 경우 JSON.stringify()
다음과 같이 객체를 JSON으로 직렬화하는 데 사용 하십시오.
data: JSON.stringify({ "command": "on" }),
JSON
객체 가없는 구형 브라우저를 지원하려면 json2.js 를 사용하여 추가하십시오.
현재 일어나고있는 것은 당신이 가지고 있기 때문에 processData: false
, 기본적으로 이것을 보내고 있습니다 : ({"command":"on"}).toString()
이것은 [object Object]
... 요청에서 볼 수 있습니다.
참고 URL : https://stackoverflow.com/questions/4159701/jquery-posting-valid-json-in-request-body
'Programing' 카테고리의 다른 글
지도와 사전의 차이점은 무엇입니까? (0) | 2020.06.03 |
---|---|
YAML에서 빈 배열을 만들려면 어떻게합니까? (0) | 2020.06.03 |
Application 클래스를 확장해야하는 이유 (0) | 2020.06.03 |
Visual Studio 2017에서 NUnit 테스트를 실행하는 방법은 무엇입니까? (0) | 2020.06.03 |
ValueError : 시퀀스로 배열 요소 설정 (0) | 2020.06.03 |