source

$.ajax가 포함된 쿼리 문자열 대신 JSON을 전송하려면 어떻게 해야 합니까?

lovecheck 2023. 2. 13. 20:43
반응형

$.ajax가 포함된 쿼리 문자열 대신 JSON을 전송하려면 어떻게 해야 합니까?

jQuery가 쿼리 문자열 대신 실제 JSON을 전송하도록 하는 방법을 쉽게 설명할 수 있습니까?

$.ajax({
    url      : url,
    dataType : 'json', // I was pretty sure this would do the trick
    data     : data,
    type     : 'POST',
    complete : callback // etc
});

이렇게 하면 실제로 신중하게 준비한 JSON이 쿼리 문자열로 변환됩니다.짜증나는 것 중 하나는 어떤 것이든array: []오브젝트에서 로 변환됩니다.array[]: []아마도 쿼리 스팅의 제한 때문일 것입니다.

를 사용하여 오브젝트를 JSON으로 시리얼화한 후contentType서버가 JSON임을 인식할 수 있도록 합니다.이렇게 하면 효과가 있습니다.

$.ajax({
    url: url,
    type: "POST",
    data: JSON.stringify(data),
    contentType: "application/json",
    complete: callback
});

주의:JSON오브젝트는 JavaScript 1.7 / ECMAScript 5 이후를 지원하는 브라우저에서 기본적으로 사용할 수 있습니다.레거시 지원이 필요한 경우 json2를 사용할 수 있습니다.

아니요, 옵션은 수신된 데이터를 해석하는 것입니다.

JSON을 게시하려면 를 통해 직접 문자열화하고processData할 수 있는 선택권false.

$.ajax({
    url: url,
    type: "POST",
    data: JSON.stringify(data),
    processData: false,
    contentType: "application/json; charset=UTF-8",
    complete: callback
});

모든 브라우저가 다음 기능을 지원하는 것은 아닙니다.JSON오브젝트 및 jQuery에는.parseJSON스트링ifier는 포함되어 있지 않습니다.다른 폴리필 라이브러리가 필요합니다.

ASP와 같은 아키텍처는 많이 알고 있습니다.NET MVC에는 콘텐츠로서 JSON.stringify를 처리하는 기능이 내장되어 있습니다.내 상황은 조금 다르니까 아마 이것은 미래에 누군가에게 도움이 될 것이다.시간이 절약될 거란 거 알아!

http 요구는 다른 서브도메인 상의 IBM(AS400 환경)의 CGI API에 의해 처리되기 때문에 이러한 요구는 크로스 오리진(cross origin), 즉 jsonp입니다.사실 javascript 오브젝트를 통해 jajax를 보냅니다.다음은 Ajax POST의 예입니다.

 var data = {USER : localProfile,  
        INSTANCE : "HTHACKNEY",  
        PAGE : $('select[name="PAGE"]').val(), 
        TITLE : $("input[name='TITLE']").val(), 
        HTML : html,
        STARTDATE : $("input[name='STARTDATE']").val(), 
        ENDDATE : $("input[name='ENDDATE']").val(),
        ARCHIVE : $("input[name='ARCHIVE']").val(), 
        ACTIVE : $("input[name='ACTIVE']").val(), 
        URGENT : $("input[name='URGENT']").val(), 
        AUTHLST :  authStr};
        //console.log(data);
       $.ajax({
            type: "POST",
           url:   "http://www.domian.com/webservicepgm?callback=?",
           data:  data,
           dataType:'jsonp'
       }).
       done(function(data){
         //handle data.WHATEVER
       });

이것을 asp.net으로 반송하고, 요구된 데이터가 필요한 경우.form [ ] you you to to to유형을 "application/x-www-form-urlencoded; charset=utf-8"로 설정해야 합니다.

원래 투고 내용은 이쪽

다음으로 데이터 타입을 삭제합니다.반품을 기대하지 않으면 POST는 4분 정도 기다렸다가 실패합니다.여기를 참조해 주세요.

언급URL : https://stackoverflow.com/questions/12693947/how-to-send-json-instead-of-a-query-string-with-ajax

반응형