복붙노트

[JQUERY] 어떻게 $ 아약스와 쿼리 문자열 대신 JSON을 보내?

JQUERY

어떻게 $ 아약스와 쿼리 문자열 대신 JSON을 보내?

해결법


  1. 1.먼저 직렬화 JSON에 개체에 JSON.stringify를 사용하고, 서버가 그것의 JSON을 이해 있도록 다음의 contentType을 지정해야합니다. 이 트릭을 수행해야합니다

    먼저 직렬화 JSON에 개체에 JSON.stringify를 사용하고, 서버가 그것의 JSON을 이해 있도록 다음의 contentType을 지정해야합니다. 이 트릭을 수행해야합니다

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

    json으로 개체 브라우저를 지원하는 자바 스크립트 1.7 / 인 ECMAScript 5 이상에서 기본적으로 사용할 수 있다는 점에 유의하십시오. 레거시 지원이 필요한 경우에는 json2 사용할 수 있습니다.


  2. 2.아니, 데이터 유형 옵션은 수신 된 데이터를 분석입니다.

    아니, 데이터 유형 옵션은 수신 된 데이터를 분석입니다.

    JSON을 게시하려면이 작업은 JSON.stringify 통해 ​​직접 캐릭터 라인 화하고 false로 processData 옵션을 설정해야합니다.

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

    참고 모든 브라우저는 JSON 객체를 지원하고, JQuery와 .parseJSON을 가지고 있지만, 그것은 포함 어떤 stringifier이 없다는; 다른 polyfill 라이브러리가 필요합니다.


  3. 3.내가 ASP.NET MVC 같은 많은 아키텍처를 내장 한의 contentType으로 JSON.stringify을 처리하는 기능을 알고 있지만 내 상황이 조금 다르다 그래서 어쩌면이 미래에 누군가가 도움이 될 수 있습니다. 나는 그것이 나에게 시간을 저장 한 것 알고있다!

    내가 ASP.NET MVC 같은 많은 아키텍처를 내장 한의 contentType으로 JSON.stringify을 처리하는 기능을 알고 있지만 내 상황이 조금 다르다 그래서 어쩌면이 미래에 누군가가 도움이 될 수 있습니다. 나는 그것이 나에게 시간을 저장 한 것 알고있다!

    내 HTTP 요청은 다른 하위 도메인에 IBM (AS400 환경)에서 CGI API에 의해 처리되고 있기 때문에 이러한 요청은 크로스 기원, 따라서 JSONP 있습니다. 나는 실제로 내 아약스를 통해 자바 스크립트 객체 (들)을 보냅니다. 여기 내 아약스 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
           });
    

  4. 4.당신은 asp.net이 다시 보내고으로 Request.Form의 데이터를 필요로하는 경우 [] 다음에 콘텐츠 형식을 설정해야합니다 "을 application / x-www-form을-urlencoded로; 문자셋 = UTF-8"

    당신은 asp.net이 다시 보내고으로 Request.Form의 데이터를 필요로하는 경우 [] 다음에 콘텐츠 형식을 설정해야합니다 "을 application / x-www-form을-urlencoded로; 문자셋 = UTF-8"

    여기에 원래의 게시물

    당신은 수익을 기대하지 않을 경우 둘째, 데이터 유형의 제거는 POST는 실패하기 전에 약 4 분 동안 기다립니다. 여기를 보아라

  5. from https://stackoverflow.com/questions/12693947/how-to-send-json-instead-of-a-query-string-with-ajax by cc-by-sa and MIT license