AJax 기본 개념 과 조작

async
유형: Boolean
기본 값: true.기본 설정 에서 모든 요청 은 비동기 요청 입 니 다.동기 화 요청 을 보 내 려 면 이 옵션 을 false 로 설정 하 십시오.
동기 화 요청 은 브 라 우 저 를 잠 그 고 사용자 의 다른 작업 은 요청 이 완료 되 기 를 기 다 려 야 실행 할 수 있 습 니 다.
var temp; $.ajax({
   async: false,    type : "POST",    url : defaultPostData.url,    dataType : 'json',    success : function(data)     {
      temp=data;    }
});
alert(temp);
이 ajax 요청 은 동기 화 요청 입 니 다. 반환 값 이 없 을 때 까지 alert (temp) 는 실행 되 지 않 습 니 다.
async 가 true 로 설정 되 어 있 으 면 ajax 요청 이 돌아 오 는 결 과 를 기다 리 지 않 고 ajax 뒤의 문 구 를 직접 실행 합 니 다.
그러나 위 에 동기 화 요청 방법 을 설정 한 네티즌 들 은 async 를 false 로 설정 한 후 데 이 터 를 되 돌려 주 고 $. ajax 뒤의 스 크 립 트 를 실행 하려 고 했 는데 이곳 이 불 여우 브 라 우 저 에서 플래시 스크린 (Firefox 11.0) 이 나타 날 줄 은 몰 랐 다.스크롤 바 아래 에서 ajax 를 끌 어 당 기 는 경우 입 니 다. 마지막 으로 async: false 주석 만 떨 어 뜨 릴 수 있 습 니 다. 즉, async 를 ture 로 하 는 경우, 불 여우 브 라 우 저 스크롤 바 아래 에서 ajax 를 끌 어 당 겨 플래시 화면 이 나타 나 는 문 제 를 성공 적 으로 해결 하 였 습 니 다.
contentType
 
       contentType 은 주로 서버 에 보 내 는 형식 을 설정 합 니 다. 기본 값 은 contentType: application / x - www - form - urlencoded 입 니 다. 구체 적 인 인삼 형식 에 따라 설정 할 수 있 습 니 다. 예 를 들 어 contentType : 'application/json;charset=UTF-8'。
contentType 사용 안 함
contentType: "application / json" 을 사용 하지 않 으 면 data 가 대상 일 수 있 습 니 다.
$.ajax({      url: actionurl,      type: "POST",      datType: "JSON",      data: { id: nodeId },      async: false,      success: function () {}   })
contentType 사용
contentType: "application / json" 을 사용 하면 data 는 json 문자열 만 사용 할 수 있 습 니 다.
$.ajax({   url: actionurl,   type: "POST",   datType: "JSON",   contentType: "application/json"   data: "{'id': " + nodeId +"}",   async: false,   success: function () {}   });
contentType 을 왜 사용 합 니까?
참고:https://www.cnblogs.com/htoooth/p/7242217.html
       http 요청 에 서 는 get 과 post 가 가장 많이 사 용 됩 니 다. jquery 의 ajax 에 서 는 contentType 이 기본 값 입 니 다. application / x - ww - form - urlencoded. 이러한 형식의 특징 은 name / value 가 한 그룹 이 되 고 각 그룹 간 에 & 연결 되 며 name 과 value 는 = 연결 을 사용 하 는 것 입 니 다. 예 를 들 어 wwh. baidu. com / q? key = fdsa & lang = zh 는 get 이 며, post 요청 은 get 입 니 다.요청 체 를 사용 하면 인자 가 url 에 있 지 않 고 요청 체 에 있 는 매개 변수 표현 형식 도 key = fdsa & lang = zh 형식 입 니 다.
키 값 은 이러한 조직 에 대해 일반적인 상황 에서 아무런 문제 가 없습니다. 여기 서 말 하 는 것 은 일반적으로 끼 워 넣 지 않 은 유형의 JSON, 즉 간단 한 JSON 입 니 다. 이렇게 생 겼 습 니 다.
{
    a: 1,
    b: 2,
    c: 3
}

그러나 일부 복잡 한 상황 에서 문제 가 생 겼 습 니 다. 예 를 들 어 ajax 에서 복잡 한 json 쌍 상 을 전달 해 야 합 니 다. 즉, 대상 모자이크 라 고 할 수 있 습 니 다. 배열 에는 대상 이 포함 되 어 있 습 니 다. 형 과 는 이렇게 전 합 니 다.
{
  data: {
    a: [{
      x: 2
    }]
  }
}

이 복잡 한 대상, application / x - ww - form - urlencoded 라 는 형식 은 복잡 한 JSON 을 키 쌍 형식 으로 구성 할 방법 이 없다 (물론 방안 도 있다 는 점 을 참고 할 수 있다. ) ,요청 을 보 낼 수 있 지만 서버 에서 데 이 터 를 받 은 것 은 비어 있 습 니 다. ajax 가 이 데 이 터 를 어떻게 처리 하 는 지 알 수 없 기 때 문 입 니 다.
이게 어떻게 되 지?
똑똑 한 프로그래머 는 http 에서 데이터 형식 을 사용자 정의 할 수 있다 는 것 을 발견 하고 application / json 이라는 형식 을 정의 합 니 다. 이 유형 은 text 입 니 다. 우리 ajax 의 복잡 한 JSON 데 이 터 는 JSON. stringify 로 직렬 화 한 후 보 내 고 서버 에서 받 은 다음 JSON. parse 로 복원 하면 복잡 한 대상 을 처리 할 수 있 습 니 다.
$.ajax({
    dataType: 'json',
    contentType: 'application/json',
    data: JSON.stringify({a: [{b:1, a:1}]})
})

이렇게 하면 복잡 한 JSON 의 대상 을 보 낼 수 있 습 니 다. 현재 의 restclient 는 모두 이렇게 처리 합 니 다.
dataType
dataType 은 서버 데 이 터 를 받 은 형식 을 설정 합 니 다.
JSON.stringify
 
JSON. stringify () [대상 에서 문자열 분석]
var data={name:'goatling'}
JSON.stringify(data)
결 과 는:
'{"name":"goatling"}'
JSON.parse
JSON. parse () [한 문자열 에서 json 대상 을 분석 합 니 다]. controller 에서 들 려 오 는 실체 클래스, LIst 를 JSON 대상 으로 변환 할 수도 있 습 니 다. jQuery AJAX 방법 success () 배경 에서 들 려 오 는 4 가지 데 이 터 를 참고 할 수 있 습 니 다.
예:
/ / 문자열 정의
var data='{"name":"goatling"}'
/ / 분석 대상
​JSON.parse(data)
결 과 는:
​name:"goatling"

좋은 웹페이지 즐겨찾기