2014-04-26 2 views
-1

브라우저에서 url을 실행할 때 asmx 서비스 &이 있습니다. 그 시간에 나는 xml + json 응답을 얻고있다.asmx 서비스가 xml 대신 json 데이터를 반환합니다.

내 서비스 코드 :

이제
namespace CTSWebApp.Service 
{ 
    /// <summary> 
    /// Summary description for GetShipperConsignee 
    /// </summary> 
    [WebService(Namespace = "http://tempuri.org/")] 
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] 
    [System.ComponentModel.ToolboxItem(false)] 
    // To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
    [System.Web.Script.Services.ScriptService] 
    public class GetShipperConsignee : System.Web.Services.WebService 
    { 
     [WebMethod] 
     [ScriptMethod(UseHttpGet = true, ResponseFormat = ResponseFormat.Json)] 
     public string GetAutoList(string SearchText) 
     { 
      List<ShipperDTO> shipperList = new List<ShipperDTO>(); 
      ShipperApp shipperApp = new ShipperApp(); 
      shipperList = shipperApp.GetShipper(SearchText); 

      var serializer = new System.Web.Script.Serialization.JavaScriptSerializer(); 
      string m_json = serializer.Serialize(shipperList); 

      return m_json; 

     } 
    } 
} 

, 내가 브라우저에서 URL을 실행합니다. 내 대답은 다음과 같습니다

<?xml version="1.0" encoding="utf-8"?> 
<string xmlns="http://tempuri.org/">List :[{"VendorId":18,"Name":"GRIP RITE","Address1":"530B NE 42ND COURT","Address2":"","State":"FL","City":"FT LAUDERDALE","Zip":"33334"},{"VendorId":1003895,"Name":"GRIP RITE","Address1":"214-A BICKLEY RD","Address2":"","State":"SC","City":"LEXINGTON","Zip":"29072"},{"VendorId":1009453,"Name":"GRIFFIN PLATING CO","Address1":"1636 WEST ARMITAGE AVE.","Address2":"","State":"IL","City":"CHICAGO","Zip":"60622"},{"VendorId":1012716,"Name":"GRIFFIN TRANSPORT SERVICE","Address1":"5360 CAPITAL COURT","Address2":"STE 100","State":"NV","City":"RENO","Zip":"89502"},{"VendorId":1016190,"Name":"GRIFFIN GREENHOUSE","Address1":"7141 OLD RUTLEDGE PIKE","Address2":"","State":"TN","City":"KNOXVILLE","Zip":"37924"},{"VendorId":1016668,"Name":"GRIOT\u0027S GARAGE INC","Address1":"3333 S 38TH STREET","Address2":"","State":"WA","City":"TACOMA","Zip":"98409"},{"VendorId":1017354,"Name":"GRIFFIN EXPRESS","Address1":"12 CRESCENT STREET","Address2":"","State":"MA","City":"HOLYOKE","Zip":"01040"},{"VendorId":1018691,"Name":"GRIFFIN INDUSTRIES","Address1":"1001 ORIENT ROAD","Address2":"","State":"FL","City":"TAMPA","Zip":"33619"},{"VendorId":1022522,"Name":"GRIND LAP SERVICES","Address1":"1045 WEST NATIONAL","Address2":"","State":"IL","City":"ADDISON","Zip":"60101"},{"VendorId":1022552,"Name":"GRISWOLD CORPORATION","Address1":"ONE RIVER STREET","Address2":"","State":"CT","City":"MOOSUP","Zip":"06354"},{"VendorId":1027089,"Name":"GRIGNARD COMPANY","Address1":"505 CAPOBIANCO PLAZA BLDG","Address2":"","State":"NJ","City":"RAHWAY","Zip":"07065"}]</string> 

는 내가 설정 파일에 코드를 추가합니다.

<httpHandlers> 
     <remove verb="*" path="*.asmx"/> 
     <add verb="*" path="*.asmx" type="System.Web.Script.Services.ScriptHandlerFactory" validate="false"/> 
    </httpHandlers> 

생각합니다. 나는 json 응답을 얻기 위해 필요한 모든 것을 다했다. 또한 나는 인터넷에서 점검했다. 그러나 그들 모두는 내가했던 같은 길이다.

친절히 알려주세요. 내가 잘못하고있는 것.

감사합니다.

+0

안녕하세요, 중복으로 인해 마이너스가 있습니다. 그러나 나는 당신이 대답에 대해 제안하는 모든 방법을 시도했다. 하지만 여전히 작동하지 않는 이유는 내가 질문을하는 이유입니다. – Kvadiyatar

+0

두 번째로 해결합니다. 질문에 대답하지 않는 것으로 대답하십시오. 나는 데이터를 게시해야합니다. 아무것도. 그건 내 실수 였어. & 자기 자신을 해결해. : D – Kvadiyatar

답변

0

코드에 문제가 없습니다. 하지만 브라우저의 주소 표시 줄이나 아약스 스크립트를 통해 액세스 할 수 있어야합니까? 기본적으로 브라우저는 페이지를 열 때 HttpRequest에 Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8을 보냅니다. 그것이 당신이 이것을 보는 이유입니다.

jQuery를 사용하는 경우 '데이터 유형'매개 변수에 따라 원하는 것을 얻을 수 있습니다. http://api.jquery.com/jQuery.ajax. 같은 뭔가 :

 $.ajax({ 
       type: "get", 
       url: "Sample.asmx/HelloWorld", 

       contentType: "application/json; charset=utf-8", 
       dataType: "json" 

      }).done(function(msg){alert(msg.d);}); 

그렇지 않으면 HTTP 헤더가 https://developer.mozilla.org/en-US/docs/Web/HTTP/Content_negotiation 작동 적용하는 방법을 참조하십시오.

관련 문제