>  기사  >  웹 프론트엔드  >  jQuery.ajaxWebService는 Ajax를 처리하기 위해 WebMethod를 요청합니다.

jQuery.ajaxWebService는 Ajax를 처리하기 위해 WebMethod를 요청합니다.

php中世界最好的语言
php中世界最好的语言원래의
2018-04-03 17:38:381574검색

이번에는 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.