>웹 프론트엔드 >JS 튜토리얼 >$.Ajax() 메소드의 매개변수를 사용하는 방법

$.Ajax() 메소드의 매개변수를 사용하는 방법

php中世界最好的语言
php中世界最好的语言원래의
2018-04-04 11:25:512187검색

이번에는 $.Ajax() 메소드의 매개변수 사용 방법과 $.Ajax() 메소드 사용 시 주의사항에 대해 설명하겠습니다.

먼저 Ajax의 개념을 소개하겠습니다

AJAX는 "Asynchronous Javascript And XML"(Asynchronous JavaScript and XML)의 약자로 대화형 웹 애플리케이션을 만들기 위한 웹 개발 기술을 말합니다.

AJAX = 비동기 JavaScript 및 XML(표준 범용 마크업 언어의 하위 집합).

AJAX는 빠르고 동적인 웹 페이지를 만드는 기술입니다.

AJAX를 사용하면 백그라운드에서 서버와 소량의 데이터를 교환하여 웹페이지를 비동기적으로 업데이트할 수 있습니다. 이는 전체 페이지를 다시 로드하지 않고도 웹페이지의 일부를 업데이트할 수 있음을 의미합니다.

AJAX를 사용하지 않는 기존 웹페이지에서는 콘텐츠를 업데이트해야 하는 경우 전체 웹페이지를 다시 로드해야 합니다.

ajax 메소드

$.ajax() 메소드는 jQuery의 가장 낮은 수준의 Ajax 구현입니다. 구조는 다음과 같습니다.

 $.ajax(options)

이 메소드에는 매개변수가 하나만 있지만 이 객체에는 $.ajax() 메소드에 필요한 요청 설정 및 콜백 함수가 포함되어 있습니다. 매개변수는 키/값입니다. 양식이 존재합니다. 모든 매개변수는 선택사항입니다. 일반적으로 사용되는 매개변수는 아래 표와 같습니다.

1.url

요청한 페이지를 전송하려면 문자열 유형의 매개변수(기본값은 현재 주소)가 필요합니다.

2.type

에는 문자열 유형의 매개변수가 필요하며 요청 방법(post 또는 get)은 기본적으로 get으로 설정됩니다. put 및 delete와 같은 다른 http 요청 방법도 사용할 수 있지만 일부 브라우저에서만 지원됩니다.

3.timeout

에는 Number 유형의 매개변수가 필요하며 요청 제한 시간(밀리초)을 설정합니다. 이 설정은 $.ajaxSetup() 메서드의 전역 설정을 재정의합니다.

4.async

에는 부울 유형의 매개변수가 필요합니다. 기본 설정은 true입니다. 동기 요청이 필요한 경우 이 옵션을 false로 설정하세요. 동기 요청은 브라우저를 잠그며 사용자는 다른 작업을 수행하기 전에 요청이 완료될 때까지 기다려야 합니다.

5.cache

는 부울 유형 매개변수여야 하며 기본값은 true(dataType이 Script인 경우 기본값은 false)이며, false를 설정하면 브라우저 캐시에서 요청 정보를 로드하지 않습니다.

6.data

에는 개체 또는 문자열 유형의 매개변수, 서버로 전송되는 데이터가 필요합니다. 문자열이 아닌 경우 자동으로 문자열 형식으로 변환됩니다. get 요청이 URL에 추가됩니다. 이러한 자동 변환을 방지하려면 processData 옵션을 볼 수 있습니다. 객체는 키/값 형식이어야 합니다. 예를 들어 {foo1:"bar1",foo2:"bar2"}는 &foo1=bar1&foo2=bar2로 변환됩니다. 배열인 경우 JQuery는 자동으로 동일한 이름을 다른 값에 할당합니다. 예를 들어, {foo:["bar1","bar2"]}는 &foo=bar1&foo=bar2로 변환됩니다.

7.dataType

에는 문자열 유형의 매개변수가 필요하며 서버에서 반환된 데이터 유형이 예상됩니다. 지정하지 않으면 jQuery는 HTTP 패키지의 광산 정보를 기반으로 responseXML 또는 responseText를 자동으로 반환하고 이를 콜백 함수 매개 변수로 전달합니다. 사용 가능한 유형은 다음과 같습니다.

 xml: jQuery로 처리할 수 있는 XML 문서를 반환합니다.

 html: 일반 텍스트 HTML 정보를 반환합니다. 포함된 스크립트 태그는 DOM에 삽입될 때 실행됩니다.

 script: 일반 텍스트 자바스크립트 코드를 반환합니다. 캐시 매개변수가 설정되지 않으면 결과가 자동으로 캐시되지 않습니다. 원격 요청(동일한 도메인 아래가 아님)을 수행할 때 모든 게시 요청은 가져오기 요청으로 변환됩니다.

 json: JSON 데이터를 반환합니다.

 jsonp: JSON 형식. myurl?callback=?과 같은 JSONP 형식을 사용하여 함수를 호출하면 JQuery는 자동으로 마지막 "?"를 올바른 함수 이름으로 대체하여 콜백 함수를 실행합니다.

 text: 일반 텍스트 문자열을 반환합니다.

8.beforeSend

에는 함수 유형의 매개변수가 필요합니다. 요청을 보내기 전에 사용자 정의 HTTP 헤더를 추가하는 등 XMLHttpRequest 객체의 기능을 수정할 수 있습니다. beforeSend에서 false가 반환되면 이 ajax 요청을 취소할 수 있습니다. XMLHttpRequest 객체가 유일한 매개변수입니다.

function(XMLHttpRequest){
    this;//调用本次ajax请求时传递的options参数
  }

9.complete

에는 요청이 완료된 후 호출되는 콜백 함수인 함수 유형의 매개변수가 필요합니다(요청의 성공 또는 실패 여부에 따라 호출됨). 매개변수: XMLHttpRequest 객체와 성공적인 요청 유형을 설명하는 문자열.

  function(XMLHttpRequest,textStatus){
    this; //调用本次ajax请求时传递的options参数
  }

10.success

요청 성공 후 호출되는 콜백 함수에는 함수 유형의 매개변수가 필요합니다.

  (1) 서버에서 반환하고 dataType 매개변수에 따라 처리되는 데이터입니다.

  (2) 상태를 설명하는 문자열입니다.

  function(data,textStatus){
    //data可能是xmlDoc、jsonObj、html、text等
    this; //调用本次ajax请求时传递的options参数
  }

11.error

에는 요청이 실패할 때 호출되는 함수인 Function 유형의 매개변수가 필요합니다. 이 함수에는 XMLHttpRequest 개체, 오류 메시지 및 캡처된 오류 개체(선택 사항)라는 세 가지 매개 변수가 있습니다. ajax 이벤트 기능은 다음과 같습니다.

  function(XMLHttpRequest,textStatus,errorThrown){
    //通常情况下textStatus和errorThrown只有其中一个包含信息
    this; //调用本次ajax请求时传递的options参数
  }

12.contentType

에서 서버로 정보를 보낼 때 String 유형의 매개변수가 필요합니다. 콘텐츠 인코딩 유형의 기본값은 "application/x-www-form-urlencoded"입니다. 이 기본값은 대부분의 애플리케이션에 적합합니다.

13.dataFilter

에는 Ajax에서 반환한 원본 데이터를 전처리하는 함수인 Function 유형의 매개변수가 필요합니다. 데이터와 유형이라는 두 가지 매개변수를 제공합니다. data는 Ajax가 반환한 원본 데이터이고 type은 jQuery.ajax를 호출할 때 제공되는 dataTYPE 매개변수입니다. 함수에서 반환된 값은 jQuery에 의해 추가로 처리됩니다.

  function(data,type){
    //返回处理后的数据
    return data;
  }

14.global

에는 부울 유형의 매개변수가 필요하며 기본값은 true입니다. 전역 Ajax 이벤트를 트리거할지 여부를 나타냅니다. false로 설정하면 전역 ajax 이벤트가 트리거되지 않으며 ajaxStart 및 ajaxStop을 사용하여 다양한 ajax 이벤트를 제어할 수 있습니다.

15.ifModified

에는 부울 유형의 매개변수가 필요하며 기본값은 false입니다. 서버 데이터가 변경된 경우에만 새 데이터를 가져옵니다. 서버 데이터 변경 사항을 결정하는 기준은 Last-Modified 헤더 정보입니다. 기본값은 false이며, 이는 헤더 정보가 무시됨을 의미합니다.

16.jsonp

에는 문자열 유형의 매개변수가 필요하며 jsonp 요청에서 콜백 함수의 이름을 다시 작성합니다. 이 값은 "callback=?"과 같은 GET 또는 POST 요청에서 URL 매개변수의 "콜백" 부분을 대체하는 데 사용됩니다. 예를 들어, {jsonp:'onJsonPLoad'}는 "onJsonPLoad=?"로 전달됩니다. 서버.

17.username

은 사용자의 HTTP 액세스 인증 요청에 응답하는 데 사용되는 문자열 유형 매개변수여야 합니다.

18.password

은 문자열 유형 매개변수여야 하며, 이는 HTTP 액세스 인증 요청에 응답하는 데 사용되는 비밀번호입니다.

19.processData

에는 부울 유형의 매개변수가 필요하며 기본값은 true입니다. 기본적으로 전송된 데이터는 기본 콘텐츠 유형 "application/x-www-form-urlencoded"와 일치하도록 개체(기술적으로 문자열이 아님)로 변환됩니다. 변환하고 싶지 않은 DOM 트리 정보나 기타 정보를 전송하려면 false로 설정하세요.

20.scriptCharset

은 문자열 유형 매개변수여야 합니다. 요청 시 dataType이 "jsonp" 또는 "script"인 경우에만 문자 집합(charset)을 강제로 수정하는 데 사용됩니다. 이고 유형은 GET입니다. 일반적으로 로컬 및 원격 콘텐츠 인코딩이 다를 때 사용됩니다.

케이스 코드:

$(function(){
 $('#send').click(function(){
  $.ajax({
  type: "GET",
  url: "test.json",
  data: {username:$("#username").val(), content:$("#content").val()},
  dataType: "json",
  success: function(data){
    $('#resText').empty(); //清空resText里面的所有内容
    var html = '';
    $.each(data, function(commentIndex, comment){
    html += '<p class="comment"><h6>' + comment['username']
      + ':</h6><p class="para"&#39; + comment[&#39;content&#39;]
      + &#39;</p></p>';
    });
    $('#resText').html(html);
   }
  });
 });
});

지식 링크:

1. $.each() 함수: $.each() 함수는 jQuery 객체의 Each() 메서드와 다릅니다. 함수이며 jQuery 객체를 작동하지 않습니다. 이 함수는 두 개의 매개변수를 받습니다. 첫 번째 매개변수는 배열 또는 객체이고 두 번째 매개변수는 콜백 함수입니다. 콜백 함수에는 두 개의 매개변수가 있습니다. 첫 번째 매개변수는 배열의 인덱스 또는 객체의 멤버이고 두 번째 매개변수는 해당 변수 또는 콘텐츠입니다.

  $.each(data,function(commentIndex,comment){
  //doSomething;
 })

2、ajaxStart()与ajaxStop():当Ajax请求开始时,会触发ajaxStart()方法的回调函数。当Ajax请求结束时,会触发ajaxStop()方法的回调函数。这些方法都是全局的方法,因此无论创建它们的代码位于何处,只要有Ajax请求发生时,就会触发它们。

有时候页面需要加载一些图片,可能速度回比较慢,如果在加载过程中,不给用户提供一些提示和反馈信息,很容易让用户误认为按钮单击无用,使用户对网站失去信息。

此时,我们就需要为网页添加一个提示信息,常用的提示信息是“加载中...”,代码如下:

<p id="loading">加载中...</p>

当Ajax请求开始时,将此元素显示,用来提示用户Ajax请求正在进行;当Ajax请求结束后,将此元素隐藏。代码如下:

$("#loading").ajaxStart(function(){
    $(this).show();
  }).ajaxStop(function(){
 $(this).hide();
 })

好了,下面再给大家分享一个案例代码:

$(function(){
 $('#send').click(function(){
  $.ajax({
  type: "GET",
  url: "test.json",
  data: {username:$("#username").val(), content:$("#content").val()},
  dataType: "json",
  success: function(data){
    $('#resText').empty(); //清空resText里面的所有内容
    var html = ''; 
    $.each(data, function(commentIndex, comment){
    html += '<p class="comment"><h6>' + comment['username']
      + ':</h6><p class="para"&#39; + comment[&#39;content&#39;]
      + &#39;</p></p>';
    });
    $('#resText').html(html);
   }
  });
 });
});

end,代码到此结束。

相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

推荐阅读:

ajax怎么实现网络请求的封装

Ajax和JavaScript使用的区别

위 내용은 $.Ajax() 메소드의 매개변수를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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