이번에는 Ajax를 처리하기 위해 WebMethod를 요청하는 jQuery.ajaxWebService와 Ajax를 처리하기 위해 WebMethod를 요청하는 jQuery.ajaxWebService를 가져왔습니다. notes는 다음과 같습니다.
WebForm에서 ajax 프로그램을 개발하려면 일반 처리 프로그램(*.ashx) 또는 웹 서비스(*.asmx)의 도움이 필요하며, 각 ajax 요청마다 이러한 파일을 생성해야 합니다. 프로젝트에 ajax 프로그램이 있으면 .ashx 또는 .asmx가 필연적으로 생성됩니다. 프로그램 자체에는 해롭지 않지만 파일 묶음은 항상 방해가 됩니다. 그렇다면 이러한 .ashx 및 .asmx를 버리고 ajax 프로그램을 수행하는 보다 간결한 방법을 선택할 수 있습니까?
답은 '예'입니다. 즉, WebMethod입니다. (이 메소드는 .net3.5 버전에서 디버깅되었으며, .net2.0에서는 문제가 있습니다.)
먼저 aspx.cs 파일에 public static 메소드를 생성한 후 WebMethod 속성을 추가하세요.
[WebMethod] public static string GetUserName() { //...... }
이 방법으로 세션을 운영하려면 WebMethod의 EnableSession 속성을 true로 설정해야 합니다. 즉,
[WebMethod(EnableSession = true)]//或[WebMethod(true)] public static string GetUserName() { //...... }
그런 다음 이 프로그램에 액세스하기 위한 ajax 프로그램을 작성하고 jQuery를 사용하겠습니다.
$.ajax({ type: "POST", contentType: "application/json", url: "WebForm2.aspx/GetUserName", data: "{}", dataType: "json", success: function(){.......} });
다음은 여러 매개변수에 대한 간략한 설명입니다.
type: 요청 유형, 게시물을 여기에 사용해야 합니다. WebMethod 메서드는 게시 유형 요청만 허용합니다.
contentType: 서버에 정보를 보낼 때 콘텐츠 인코딩 유형입니다. 여기서는 application/json을 사용해야 합니다.
url: "파일 이름(접미사 포함)/메서드 이름"
data: 매개변수 목록 형식의 요청된 서버 측 핸들러에 대한 경로입니다. 여기의 매개변수는 json 형식의 strings이어야 하며 "{aa:11,bb:22,cc:33, ...}"와 같은 문자열 형식이어야 한다는 점을 기억하세요.
작성한 내용이 문자열이 아닌 경우 jquery는 실제로 이를 문자열로 직렬화하므로 서버 측에서 수신되는 내용은 json 형식이 아니므로 매개변수가 없더라도 비어 있을 수 없습니다. 위의 예와 같이 "{}"로 작성됩니다.
많은 사람들이 성공하지 못하고 이것이 이유입니다.
dataType: 데이터 유형이 서버에서 반환됩니다. 반드시 json이어야 하며 그 외의 것은 유효하지 않습니다. 웹 서비스는 json 형식으로 데이터를 반환하므로 해당 형식은 {"d":"...."}입니다.
성공: 콜백 기능 요청 성공 후. 여기에서 반환된 데이터로 원하는 모든 작업을 수행할 수 있습니다.
일부 매개변수 값이 고정되어 있는 것을 볼 수 있으므로 재사용성 관점에서 jquery에 대한 확장을 만들고 위 함수를 간단히 캡슐화할 수 있습니다.
jquery .extend.js라는 스크립트 파일을 만들어 보겠습니다. . 내부에 ajaxWebService라는 메소드를 작성합니다(webmethod는 실제로 WebService이므로 이 메소드는 *.asmx 요청에도 유효합니다). 코드는 다음과 같습니다.
/// <summary> /// jQuery原型扩展,重新封装Ajax请求WebServeice /// </summary> /// <param name="url" type="String"> /// 处理请求的地址 ///</param> /// <param name="dataMap" type="String"> /// 参数,json格式的字符串 ///</param> /// <param name="fnSuccess" type="Function"> /// 请求成功后的回调函数 ///</param> $.ajaxWebService = function(url, dataMap, fnSuccess) { $.ajax({ type: "POST", contentType: "application/json", url: url, data: dataMap, dataType: "json", success: fnSuccess }); }
좋아, webmethod 메소드를 요청할 때 다음과 같이 작성할 수 있습니다. this:
$.ajaxWebService("WebForm2.aspx/GetUserName", "{}", function(result) {......});
마지막으로: 프로젝트에 ajax 프로그램이 많다면(이런 상황도 가능합니다. 웹사이트를 만들었고 SNS이고 모든 과정이 ajax이고 거의 모든 작업이 ajax를 사용합니다) 어떻게 생각하시나요? WebMethod 메서드는 다음과 같이 작성해야 합니다. 각 aspx 페이지는 매우 분산되어 있으므로 특수 페이지(예: WebMethods.aspx)를 만들어 저장할 수 있습니다.
이 기사의 사례를 읽은 후 방법을 마스터했다고 생각합니다. 더 흥미로운 정보를 보려면 PHP 중국어 웹사이트의 다른 관련 기사를 주목하세요!
추천 자료:
성공 후 즉시 새 창을 열도록 Ajax 요청을 설정하는 방법
Ajax 요청 응답에서 새 창이 가로채는 경우 수행할 작업
위 내용은 jQuery.ajaxWebService는 Ajax를 처리하기 위해 WebMethod를 요청합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!