복붙노트

[JQUERY] JQuery와 아약스 웹 서비스에 JSON을 게시

JQUERY

JQuery와 아약스 웹 서비스에 JSON을 게시

해결법


  1. 1.당신은 당신의 데이터를 캐릭터 라인 화하는 json2.js를 사용하여 언급하지만, 데이터를 기록 urlencoded를 JSON 당신은 이미 보셨을 것 같습니다하지만, JSON은 urlencoded로되는 이유 잘못된 JSON 원시 커버에 대한이 게시물.

    당신은 당신의 데이터를 캐릭터 라인 화하는 json2.js를 사용하여 언급하지만, 데이터를 기록 urlencoded를 JSON 당신은 이미 보셨을 것 같습니다하지만, JSON은 urlencoded로되는 이유 잘못된 JSON 원시 커버에 대한이 게시물.

    나는 당신의 방법으로 원시, 수동으로 직렬화 된 JSON 문자열을 전달에 무리를 줄 것입니다. 자동으로 JSON 요청의 POST 데이터를 역 직렬화에 ASP.NET은 그래서 당신은 수동으로 직렬화 및 ASP.NET에 JSON 문자열을 전송하는 경우, 것입니다, 당신은 실제로 당신의 JSON 문자열을 직렬화 직렬화 JSON에 필요하게 될 겁니다.

    나는이 라인을 따라 뭔가 더 좋을 것 :

    var markers = [{ "position": "128.3657142857143", "markerPosition": "7" },
                   { "position": "235.1944023323615", "markerPosition": "19" },
                   { "position": "42.5978231292517", "markerPosition": "-3" }];
    
    $.ajax({
        type: "POST",
        url: "/webservices/PodcastService.asmx/CreateMarkers",
        // The key needs to match your method's input parameter (case-sensitive).
        data: JSON.stringify({ Markers: markers }),
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(data){alert(data);},
        error: function(errMsg) {
            alert(errMsg);
        }
    });
    

    잘못된 JSON 원시 문제를 피하는의 핵심은 jQuery를이를 urlencode 데이터를 시도하지 않습니다 그래서, 데이터 매개 변수가 아닌 자바 스크립트 객체 jQuery를에게 JSON 문자열을 전달하는 것입니다.

    서버 측에서 당신이 전달하는 데이터의 형태로 메소드의 입력 매개 변수와 일치 :

    public class Marker
    {
      public decimal position { get; set; }
      public int markerPosition { get; set; }
    }
    
    [WebMethod]
    public string CreateMarkers(List<Marker> Markers)
    {
      return "Received " + Markers.Count + " markers.";
    }
    

    당신이 선호하는 경우에도, 마커 [] 마커와 같은 배열을 받아 들일 수 있습니다. ASMX의 ScriptServices 사용하는 (JavaScriptSerializer)이 매우 유연하고, 무엇을 할 수있는 사용자가 지정하는 서버 측 형식으로 입력 데이터를 변환 할 것 디시리얼라이저.


  2. 2.당신이 JSON으로 데이터를 전송하려면 먼저 인코딩해야합니다 :

    당신이 JSON으로 데이터를 전송하려면 먼저 인코딩해야합니다 :

    data: {markers: JSON.stringify(markers)}
    

    jQuery를 자동으로 JSON으로 객체 나 배열을 변환하지 않습니다.

    하지만 오류 메시지가 서비스의 응답을 해석에서 오는 가정합니다. 다시 보내 텍스트는 JSON 없습니다. JSON 문자열은 큰 따옴표로 묶어야합니다. 당신은해야 할 것입니다 그래서 :

    return "\"received markers\"";
    

    실제 문제가 보내거나 데이터를 수신하고 있는지 확실하지 않습니다.


  3. 3.나는 데이브 워드의 솔루션을 시도했다. contentType의이 "애플리케이션 / JSON"로 설정되어, 상기 데이터 부분은 이후 요청의 페이로드 부분에서 브라우저로 전송되지 않고 있었다. 내가이 줄을 제거하면 모든 것이 잘 작동했다.

    나는 데이브 워드의 솔루션을 시도했다. contentType의이 "애플리케이션 / JSON"로 설정되어, 상기 데이터 부분은 이후 요청의 페이로드 부분에서 브라우저로 전송되지 않고 있었다. 내가이 줄을 제거하면 모든 것이 잘 작동했다.

    var markers = [{ "position": "128.3657142857143", "markerPosition": "7" },
    
                   { "position": "235.1944023323615", "markerPosition": "19" },
    
                   { "position": "42.5978231292517", "markerPosition": "-3" }];
    
    $.ajax({
    
        type: "POST",
        url: "/webservices/PodcastService.asmx/CreateMarkers",
        // The key needs to match your method's input parameter (case-sensitive).
        data: JSON.stringify({ Markers: markers }),
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(data){alert(data);},
        failure: function(errMsg) {
            alert(errMsg);
        }
    });
    

  4. 4.나도이 일을 발견하고이 내 솔루션입니다.

    나도이 일을 발견하고이 내 솔루션입니다.

    당신이 당신의 JSON 문자열이 올 것을 알고에도 불구하고, 데이터를 분석 할 때 잘못된 JSON 개체 예외가 발생하는 경우 JSON으로 파싱하기 전에 아약스 코드에서받은 데이터를 캐릭터 라인 화 :

    $.post(CONTEXT+"servlet/capture",{
            yesTransactionId : yesTransactionId, 
            productOfferId : productOfferId
            },
            function(data){
                try{
                    var trimData = $.trim(JSON.stringify(data));
                    var obj      = $.parseJSON(trimData);
                    if(obj.success == 'true'){ 
                        //some codes ...
    

  5. 5.나는 쿼리가

    나는 쿼리가

    $("#login-button").click(function(e){ alert("hiii");
    
            var username = $("#username-field").val();
            var password = $("#username-field").val();
    
            alert(username);
            alert("password" + password);
    
    
    
            var markers = { "userName" : "admin","password" : "admin123"};
            $.ajax({
                type: "POST",
                url: url,
                // The key needs to match your method's input parameter (case-sensitive).
                data: JSON.stringify(markers),
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function(data){alert("got the data"+data);},
                failure: function(errMsg) {
                    alert(errMsg);
                }
            });
    
        });
    

    내가 JSON에 로그인 세부 사항을 게시하고 "성공"으로 문자열을 받고 있지만 응답을받지 못했습니다 있어요.


  6. 6.자바의 웹 서비스에 아약스 호출이를 따르십시오 VAR PARAM = { feildName : feildValue }; JSON.stringify ({데이터 : PARAM})

    자바의 웹 서비스에 아약스 호출이를 따르십시오 VAR PARAM = { feildName : feildValue }; JSON.stringify ({데이터 : PARAM})

    $.ajax({
                dataType    : 'json',
                type        : 'POST',
                contentType : 'application/json',
                url         : '<%=request.getContextPath()%>/rest/priceGroups',
                data        : JSON.stringify({data : param}),
                success     : function(res) {
                    if(res.success == true){
                        $('#alertMessage').html('Successfully price group created.').addClass('alert alert-success fade in');
                        $('#alertMessage').removeClass('alert-danger alert-info');
                        initPriceGroupsList();
                        priceGroupId = 0;
                        resetForm();                                                                    
                    }else{                          
                        $('#alertMessage').html(res.message).addClass('alert alert-danger fade in');
                    }
                    $('#alertMessage').alert();         
                    window.setTimeout(function() { 
                        $('#alertMessage').removeClass('in');
                        document.getElementById('message').style.display = 'none';
                    }, 5000);
                }
            });
    
  7. from https://stackoverflow.com/questions/6323338/jquery-ajax-posting-json-to-webservice by cc-by-sa and MIT license