비동기 요청 ajax 및 get 과 post 차이

7301 단어
1.  xhr  
var xhr = null;
      
if(window.XMLHttpRequest){
    xhr = new XMLHttpRequest();        
}else{      ie6   
    xhr = new ActiveXObject("Microsoft.XMLHttpRequest");
}
  XMLHttpRequest  
 JS ,window      (  Object,Function...    ),        。 window.XMLHttpRequest    window     。           ,   firefox,opera,safiar,IE7.0,IE8.0(     window           )      ,window  XMLHttpRequest     , IE6.0,5.5     ,IE6.0 5.5        ,  window.ActiveXObject  。        XMLHttpRequest            
2.                     ,       
xhr.onreadystatechange = function(){    
    if(xhr.readyState === 4){    4.        ,     
        if(xhr.status === 200){    200.      
            console.log("XHR      "+xhr.responseText);
        }esle{
            console.log("         ajax  "+xhr.status);
        }
    }
}

onreadystatechange 
저장 함수 (또는 함수 명) 는 ready State 속성 이 바 뀔 때마다 이 함 수 를 호출 합 니 다.
readyState  XML HttpRequest 가 저 장 된 상태 입 니 다.0 에서 4 까지 변화 가 일어나다
0 요청 초기 화 되 지 않 음
1 서버 연결 이 완료 되 었 습 니 다
2 서버 접수 됨
3 요청 처리 중
4 요청 이 완료 되 었 고 응답 이 완료 되 었 습 니 다.
status  응답 상태 코드 (맨 아래 대조 표 있 음)
1xx 정보 클래스 오류
2xx 성공 표시 200
3xx 리 셋 304
4xx 클 라 이언 트 오류 404
5xx 서버 오류
이 status 속성 은 HTTP 상태 코드 를 설명 합 니 다. ready State 값 이 3 (수신 중) 또는 4 (불 러 온) 일 때 만 이 status 속성 을 사용 할 수 있 습 니 다.ready State 의 값 이 3 보다 적 을 때 status 에 접근 하려 는 값 이 이상 합 니 다.
xhr.responseText      응답 데이터 획득
GET   
3.    
xhr.open("GET",url+       , ("?uname=  &age=16"),true)     true          ,   

4.    
xhr.send()
POST   
3.    
xhr.open("POST",url,true)
   post      ,          
4.     
// xhr.setRequestHeader("Content-type","application/json; charset=utf-8");   json
// xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=utf-8");       
// xhr.setRequestHeader("Content-type", "text/plain; charset=utf-8");    
// xhr.setRequestHeader("Content-type", "text/html; charset=utf-8");  HTML

xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");       

5.    
xhr.send(     )

방법.
묘사 하 다.
open(method,url,async)
요청 의 유형, URL, 비동기 처리 여 부 를 규정 합 니 다.
  • method: 요청 한 형식;GET 또는 POST
  • url: 서버 에 있 는 파일 위치
  • async: true (비동기) 또는 false (동기 화)
  • send(string)
    서버 에 요청 을 보 냅 니 다.
  • string: POST 요청 에 만 사용
  • HTTP 의 8 가지 요청 방식
    번호
    방법.
    묘사 하 다.
    1
    GET
    지정 한 페이지 정 보 를 요청 하고 실체 주 체 를 되 돌려 줍 니 다.
    2
    HEAD
    get 요청 과 유사 합 니 다. 되 돌아 오 는 응답 에는 구체 적 인 내용 이 없습니다. 헤 더 를 가 져 오 는 데 사 용 됩 니 다.
    3
    POST
    지정 한 자원 에 데 이 터 를 제출 하여 처리 요청 (예 를 들 어 폼 을 제출 하거나 파일 을 업로드 하 는 것).데 이 터 는 요청 체 에 포함 되 어 있 습 니 다.POST 요청 은 새로운 자원 의 구축 과 / 또는 기 존 자원 의 수정 을 초래 할 수 있 습 니 다.
    4
    PUT
    클 라 이언 트 에서 서버 로 전 송 된 데 이 터 는 지정 한 문서 의 내용 을 대체 합 니 다.
    5
    DELETE
    서버 에 지정 한 페이지 를 삭제 해 달라 고 요청 합 니 다.
    6
    CONNECT
    HTTP / 1.1 프로 토 콜 은 연결 을 파이프 방식 으로 변경 할 수 있 는 프 록 시 서버 에 미리 남 겨 두 었 습 니 다.
    7
    OPTIONS
    클 라 이언 트 가 서버 의 성능 을 볼 수 있 도록 합 니 다.
    8
    TRACE
    리 턴 서버 에서 받 은 요청 은 주로 테스트 나 진단 에 사 용 됩 니 다.
    GET 요청 과 POST 요청 의 차이
    간단하게:
    get 정 보 는 주소 표시 줄 에 표시 되 며, 보안 은 post 보다 낮 습 니 다.
    get 한 번 에 보 내 는 정 보 는 2000 문자 정도 로 제한 되 어 있 으 며, post 는 제한 이 없습니다.
    get 은 url 인 코딩 만 할 수 있 고 POST 는 다양한 인 코딩 방식 을 지원 합 니 다.
    https://www.cnblogs.com/logsharing/p/8448446.html  (get 과 post 의 차 이 를 소개 하 는 블 로 그 를 추천 합 니 다)
     
    Ajax status 와 status Text 상태 대조 표
    status
    statusText
    설명 하 다.
    0**
    -
    초기 화 되 지 않 음
    1**
    -
    요청 받 았 습 니 다. 계속 처리 하 세 요.
    100
    Continue
    고객 은 계속 요청 을 해 야 합 니 다.
    101
    Switching protocols
    클 라 이언 트 는 서버 가 요청 에 따라 HTTP 프로 토 콜 버 전 을 변환 하도록 요구 합 니 다.
    2**
    -
    조작 성공 수령, 분석, 수용
    200
    OK
    거래 성공
    201
    Created
    새 파일 의 URL 알 기
    202
    Accepted
    받 아들 이 고 처리 하지만 처리 가 완료 되 지 않 았 습 니 다.
    203
    Non-Authoritative Information
    정보 가 불확실 하거나 완전 하지 않 음 을 되 돌려 줍 니 다.
    204
    No Content
    받 아 달라 고 요 청 했 지만 되 돌아 오 는 메시지 가 비어 있 습 니 다.
    205
    Reset Content
    서버 가 요청 을 완 료 했 습 니 다. 사용자 프 록 시 는 현재 탐색 한 파일 을 복원 해 야 합 니 다.
    206
    Partial Content
    서버 에서 일부 사용자 의 GET 요청 이 완료 되 었 습 니 다.
    3**
    -
    이 요청 을 완성 하려 면 더 처리 해 야 합 니 다.
    300
    Multiple Choices
    요청 한 자원 은 여러 곳 에서 얻 을 수 있 습 니 다.
    301
    Moved Permanently
    요청 데이터 삭제
    302
    Found
    다른 주소 에서 요청 데 이 터 를 발 견 했 습 니 다.
    303
    See Other
    고객 이 다른 URL 이나 접근 방식 에 접근 하 는 것 을 권장 합 니 다.
    304
    Not Modified
    클 라 이언 트 가 GET 를 실 행 했 지만 파일 은 변 하지 않 았 습 니 다.
    305
    Use Proxy
    요청 한 자원 은 서버 가 지정 한 주소 에서 받 아야 합 니 다.
    306
     
    이전 버 전 HTTP 에서 사 용 된 코드 는 현 행 버 전에 서 사용 되 지 않 습 니 다.
    307
    Temporary Redirect
    요청 한 자원 임시 삭제 설명
    4**
    -
    오류 문법 을 포함 하거나 완료 할 수 없 음 을 요청 합 니 다.
    400
    Bad Request
    문법 오류 와 같은 오류 요청
    401
    Unauthorized
    인증 요청 실패
    402
    Payment Required
    유효한 ChargeTo 헤더 응답 유지
    403
    Forbidden
    요청 이 허용 되 지 않 습 니 다 (서버 에 있 는 파일 이나 디 렉 터 리 의 권한 설정 으로 인해 자원 을 사용 할 수 없습니다)
    404
    Not Found
    파일, 조회, URL 이 발견 되 지 않 았 습 니 다. (지정 한 자원 을 찾 을 수 없 음)
    405
    Method Not Allowed
    사용자 가 Request - Line 필드 에서 정의 하 는 방법 은 허용 되 지 않 습 니 다.
    406
    Not Acceptable
    사용자 가 보 낸 Accept 지연 에 따라 자원 에 접근 할 수 없습니다.
    407
    Proxy Authentication Required
    401 과 유사 하여 사용 자 는 먼저 프 록 시 서버 에서 권한 을 수 여 받 아야 합 니 다.
    408
    Request Timeout
    클 라 이언 트 가 사용자 가 지정 한 배 고 픈 시간 내 에 요청 을 완료 하지 않 았 습 니 다.
    409
    Conflict
    현재 자원 상태 에 대한 요청 이 완료 되 지 않 았 습 니 다.
    410
    Gone
    서버 에 더 이상 이 자원 이 없고 참고 주소 가 없습니다.
    411
    Length Required
    서버 가 사용자 정의 Content - Length 속성 요청 을 거부 합 니 다.
    412
    Precondition Failed
    현재 요청 에서 하나 이상 의 요청 헤더 필드 가 잘못 되 었 습 니 다.
    413
    Request Entity Too Large
    요청 한 자원 이 서버 가 허용 하 는 크기 보다 큽 니 다.
    414
    Request-URI Too Long
    요청 한 자원 URL 은 서버 가 허용 하 는 길이 보다 깁 니 다.
    415
    Unsupported Media Type
    요청 자원 은 요청 항목 형식 을 지원 하지 않 습 니 다.
    416
    Requested Range Not Suitable
    요청 에는 Range 요청 헤더 필드 가 포함 되 어 있 습 니 다. 현재 요청 자원 범위 내 에 range 지시 값 이 없고 요청 에 도 If - Range 요청 헤더 필드 가 포함 되 어 있 지 않 습 니 다.
    417
    Expectation Failed
    서버 가 요청 Expect 헤드 필드 에서 지정 한 기대 치 를 만족 시 키 지 못 합 니 다. 프 록 시 서버 라면 다음 서버 가 요청 을 만족 시 키 지 못 할 수도 있 습 니 다.
    5**
    -
    서버 에서 완전 유효 요청 을 실행 하 는 데 실 패 했 습 니 다.
    500
    Internal Server Error
    서버 내부 오류 발생
    501
    Not Implemented
    서버 에서 요청 한 함 수 를 지원 하지 않 습 니 다.
    502
    Bad Gateway
    서버 를 잠시 사용 할 수 없습니다. 시스템 과부하 가 발생 하지 않도록 하기 위해 서 입 니 다.
    503
    Service Unavailable
    서버 과부하 또는 일시 정지
    504
    Gateway Timeout
    관문 이 과부하 되 었 습 니 다. 서버 는 다른 관문 이나 서 비 스 를 사용 하여 사용자 에 게 응답 하고 대기 시간 설정 치가 비교적 깁 니 다.
    505
    HTTP Version Not Supported
    서버 에서 지정 한 HTTP 버 전 을 지원 하지 않 거나 거부 합 니 다.
    12029
    an unknown error occurred while processing the request on the server. the status code returned from the server was : 12029
    원인: 인터넷 이 통 하지 않 습 니 다. 새로 고침 하면 알 수 있 습 니 다.

    좋은 웹페이지 즐겨찾기