HttpRequest

Type : Constructor

Support : 1.0

Extend : $B.Class

  • XMLHttpRequest (xml, text기반 통신)
    로컬서버에서는 비정상작동 할수 있다. 같은 도메인의 데이타 파일만 가져올수 있다.

Methods

  • HttpRequest( path, data, method, charset )

    HttpRequest 생성
    • path : String
      대상 경로
    • data : Object
      이벤트핸들러 에서 전달, 'e.data'
    • method : String
      'GET' or 'POST', 기본값 'GET'
      GET 으로 요청시 IE에서 URL길이 2,048자이상은 잘라버리니 주의.
    • charset : String
      기본값 'UTF-8'(method가 POST 일때만 적용)
  • load( params, cache ) : HttpRequestver 1.0~

    HttpRequest connect
    다시 호출할려면 abort시킨후 호출해야한다.
    • params : String
      예)count=100&time=100
    • cache : Boolean
      GET으로 요청할때 캐시가 false면 url에 requestTime을 추가하여 캐시를 방지한다.
  • abort() : HttpRequestver 1.0~

    HttpRequest 정지, 이벤트삭제
  • upload( data ) : HttpRequestver 1.0~

    서버에 Stream으로 파일전송
    다시 호출할려면 abort시킨후 호출해야한다.
    method설정과 괸계없이 무조건 POST전송
    • data : String
      base64 image data

Events

No. type description property ver
1 progress 리소스 로드와 같은 기본 프로세스의 진행 시점
(IE10~, Android2.*~ 지원)
1.0
2 complete 로드 완료 시점
  • target: Event가 발생한 대상
  • xml: xhr.responseXML
  • text: xhr.responseText
  • status: xhr.status
  • statusText: xhr.statusText
  • data: 최초 설정시 data
1.0
2 error 에러 발생 시점 complete과 동일 1.0

Example

var ajax = new $B.net.HttpRequest( 'data.php' )
        .addListener( 'complete', function (e) {
            //
        })
        .addListener( 'error', function (e) {
            //
        }).load( 'page=5&id=105' );

JS 로드

var ajax = new $B.net.HttpRequest( 'js/test.js' )
        .addListener( 'complete', function (e) {
            jsNode.text = e.text;
        }).load();

progress 이벤트 적용

var ajax = new $B.net.HttpRequest( 'js/test.js' );

//progress 이벤트등록
$B( ajax.xhr.upload ).addEvent( 'progress', progressHandler );
$B( ajax.xhr ).addEvent( 'progress', progressHandler );

ajax.load();

function progressHandler (e) {
    console.log( e.total );//파일전체크기
    console.log( e.loaded );//다운받은 파일크기
};

progress 이벤트는 upload, downloa시에 지원하며, XMLHttpRequest Level2 를 지원하는 브라우저에서만 지원한다.
※ XMLHttpRequest Level2 를 지원하는 브라우저정보 (http://caniuse.com/#feat=xhr2)