programing

jQuery가 요청 본문에 유효한 json을 게시합니다.

testmans 2023. 4. 5. 21:26
반응형

jQuery가 요청 본문에 유효한 json을 게시합니다.

따라서 jQuery Ajax 문서에 따르면 요청을 전송할 때 쿼리 문자열 형식으로 데이터를 직렬화하지만,processData:false본체에 실제 JSON을 보낼 수 있습니다.유감스럽게도 먼저 이 문제가 발생하고 있는지, 다음으로 오브젝트가 어떻게 생겼는지 서버에 전송되는지를 판단하는 데 어려움을 겪고 있습니다.내가 아는 건 서버가 내가 보낸 것을 해석하지 않고 있다는 거야.

http 클라이언트를 사용하여 오브젝트 리터럴을 게시하는 경우{someKey:'someData'},그건 효과가 있다.단, jQuery를 사용하여data: {someKey:'someData'}에러가 납니다.안타깝게도 Safari에서 요청을 분석하면 메시지 페이로드가[object Object]...좋아요...파이어폭스에서는 투고가 공백으로 되어 있습니다.

Java 측에서 본문 콘텐츠를 로깅하면 문자 그대로[object Object]그럼 어떻게 리얼 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에 시리얼화 합니다.

data: JSON.stringify({ "command": "on" }),

이 기능이 없는 이전 브라우저를 지원하려면JSONobject를 추가할 json2.block을 사용합니다.


지금 일어나고 있는 일은 당신이 이 일을processData: false기본적으로는 다음과 같이 송신됩니다.({"command":"on"}).toString()어느 것이[object Object]...당신의 요청에서 본 것.

언급URL : https://stackoverflow.com/questions/4159701/jquery-posting-valid-json-in-request-body

반응형