jQuery에서 ASMX 웹 메소드를 호출 할 때 어디에서 잘못되고 있습니까?

StackOverflow https://stackoverflow.com/questions/608006

  •  03-07-2019
  •  | 
  •  

문제

ASP.NET 2.0 응용 프로그램에 간단한 웹 메드가 있습니다 (3.5 AJAX 확장이 아닌 1.0 확장자 사용). 나는 jQuery에서 메소드를 호출하려고 노력하고 있으며 인터넷에서 수많은 예제가 표시되면서 내부 서버 오류 메시지가 반환됩니다.

내 현재 코드는 다음과 같습니다.

[WebMethod]
[ScriptMethod(ResponseFormat=ResponseFormat.Json)]
public string Select(string login)
{
    UserProfile profile = UserProfile.GetUserProfile(login);

    return "{ FirstName: '" + profile.FirstName + "', " +
             "LastName: '" + profile.LastName + "', " +
             "EmailAddress: '" + profile.EmailAddress + "', " +
             "PhoneNumber: '" + profile.PhoneNumber + "' }";
 }

그리고 이제 jQuery :

$.ajax({
    type: "POST",
    url: "Services/ProfileService.asmx/Select",
    dataType: "json",
    data: "{'login':'DOMAIN%5CUSER1'}",
    contentType: "application/json; charset=utf-8",
    success: function(msg){ alert(msg); },
    error: function(xhr){ alert(xhr.statusText);}     
});

웹 서비스는 다음으로 장식되어 있습니다 [ScriptService] 속성도 있습니다. ContentType를 주석하고 데이터 타입을 텍스트로 변경하고 데이터를 쿼리 문자열 (name = value)으로 변경하면 XML을 적절하게 반환합니다.

내가 어디로 잘못 가고 있습니까?

업데이트 : jQuery v1.3.1을 사용하고 IE6과 Firefox 3에서 테스트를하고 있습니다. 일관된 결과를 얻고 있습니다.

도움이 되었습니까?

해결책

이것은 내 멍청한 실수였습니다. 문제가 해결되었습니다. Ajax 확장에 대한 참조를 포함했지만 ASMX 서비스를 위해 httphandler를 ScripthandLerfactory 클래스로 다시 작성하는 것을 잊었습니다.

이것을 추가하면 문제가 해결되었습니다.

예제 또는 문제를 해결하는 방법에 대해 문의하는 이메일이 몇 개 있었 으므로이 수프를 견과류에게 수행하는 방법에 대한 블로그 게시물을 썼습니다.

http://randomactsofcoding.blogspot.com/2009/03/jquery-json-and-asmx-20-services.html

다른 팁

그래. WCF를 위해 ASMX를 포기해야합니다. Microsoft 자체의 추천. 나는 그것이 당신의 문제에 당신을 도울 수는 없다고 생각하지만, 당신은 WCF를 고려하거나 적어도 그 기술을보기 시작하는 것이 좋습니다.

같은 문제가 있었지만 코드 파일에 다음을 추가했을 때 수정되었습니다.

System.Web.Script.Services.scriptService

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top