2016-04-05 10 views
2

jquery $ ajax kullandığımda, verileri json olarak alırım Ama açısal http hizmetini kullanırken yanıtı xml olarak alırım.angularjs ve webmethod dönüş json

Bu benim kodu (açısal ve jquery ajax)

var _getList = function() { 
    var list = []; 
    var deferred = $q.defer(); 
    $.ajax({ 
     type: "POST", 
     url: '/Landing/manage/WebService.asmx/GetList', 
     contentType: "application/json; charset=utf-8", 
     dataType: "json", 
     success: function (data) { 
      if (data && data.d) { 
       list = data.d; 
       deferred.resolve(list); 
      } 
     }, 
     error: function (xmlHttpRequest, textStatus, errorThrown) { 
      deferred.reject(xmlHttpRequest); 
     } 
    });  

    //angular 
    $http({ 
     method: 'POST', 
     contentType: "application/json; charset=utf-8", 
     dataType: "json", 
     url: '/Landing/manage/WebService.asmx/GetList',   
     headers: { 
      "Content-Type": "application/json" 
     } 
    }).success(function (data) { 
     console.log(data); 
      deferred.resolve(data); 
     }) 
    .error(function (data, status, headers, config) { 
     deferred.reject(data); 
    }); 

    return deferred.promise; 
}; 

hem Ve bu json formatında dönüş

[WebMethod] 
    [System.Web.Script.Services.ScriptMethod(ResponseFormat = 

    System.Web.Script.Services.ResponseFormat.Json)] 
     public tblCampaignCollection GetList() 
     { 
      tblCampaignCollection coll = Campaign.AdminGetAll(); 

      return coll; 
    } 

enter image description here

cevap

2

isteği gerçekleştirdiğiniz ile benim web yöntemi kodudur gerçek bir POST İsteği değil, benzer bir sorunla karşılaştım, konsol ağ TAB'ını okursanız bir GET isteği olduğunu göreceksiniz. Bir hizmetindeki bir POST gerçekleştirmek istiyorsanız yapmam ne

şudur:

function myService(xxxParam) { 

     var request = $http({ 
     method: 'POST', 
     headers: {"Content-Type": 'text/plain; charset=UTF-8'}, 
     url: serviceURL, 
     data: { 
      firstPostParam: "string", 
      secondPostParam: 1, 
      thirdPostParam: xxxParam 
     } 
     }); 
     return (request.then(handleSuccess, handleError)); 
    } 

Ben yardımcı olur umarım

$http({ 
     method: 'POST', 
     url: '/Landing/manage/WebService.asmx/GetList', 
     headers: { 
     "Content-Type": 'application/json; charset=UTF-8' 
     }, 
     data: { 
     dataType: "json" 
     } 
    })... 

ile deneyin.

+0

veri eklemesi: { dataType: "json" } sorunumu çöz – 24sharon