2012-04-04 3 views
2

ASP.NET 3.5에서 ASP.NET 웹 서비스의 모든 AJAX 응답은 d 개체로 묶여 있습니다.모든 .NET Framework에서 일관된 AJAX 응답을 얻는 방법?

ASP.NET 3.5의ASP.NET AJAX 확장을 통해 JSON이 직렬화 된 모든 ASMX 서비스의 경우입니다. 문자열, int 또는 부울과 같은 스칼라 반환 값만 반환하는 경우에도 결과는 항상 "d"내에 포함됩니다.

다음 할 거라고 전 3.5 응용 프로그램과 따라서 http://encosia.com/a-breaking-change-between-versions-of-aspnet-ajax/

: 당신이해야 할 3.5으로

success(data) 
{ 
    var value = data; 
} 

을 :

success(data) 
{ 
    var value = data.d; 
} 

내가있어 3.5 이후 및 3.5 이전에 실행되는 응용 프로그램입니다.

내 애플리케이션 코드를 어떻게 일관되게 유지할 수 있습니까?

또한 업그레이드 할 때 3.5 이전 응용 프로그램의 코드를 변경할 필요가 없으므로 유용 할 것입니다.

답변

1

조금 도우미 함수 수 : 다음

function GiveMeMyDamnData(data){ 
    if(data.d) 
     return data.d; 
    return data; 
} 

을 ...

success(data) 
{ 
    var value = GiveMeMyDamnData(data); 
} 

... 단지 확인 당신이 AJAX 응답에서 'D'속성을 사용하지 않을해야

+0

+1 나는 항상 이것을 좋아하지만, 항상 'd'를 사용하지 않는다는 것을 기억하면 값 비쌀 수 있습니다. 내 발에 꿰매어지지 않았다면 신발을 잊을 것입니다. S – Curt

+0

@ 커트 (Curt) :'d 그러면 코드 작업을 할 가치가 없습니다. 'd'는 어떤 자산에 대해서도 적합한 이름이 아니야 ...) – musefan

+1

@Curt 나는 왜 신발이 발에 꿰맬 지에 대해 더 염려한다. – jadarnel27