[API/Framework]

Framework > Http

Http

개요

HTTP 통신을 하기 위한 클래스입니다.
서버에서 데이터를 전송하기 위한 조건을 지정할 수 있으며, 통신의 성공과 실패에 따라 지정한 메서드를 실행할 수 있습니다.
http통신
Options  
method {String} default: 'POST'  
통신 mehtod
url {String} default : ''  
통신할 URL
async {Boolean} default : true  
비동기(true), 동기(false) 통신 구분
encode {String} default : 'UTF-8'  
data encode 타입
headers {Hash} (optional) default : ''  
HTTP Header에 설정할 값을 지정
headers: {foo: 'fooValue', bar: 'barvalue'} 형태로 작성
onSuccess {Function} default: false  
서버와 통신이 성공적으로 완료되었을 때 실행할 callback function
function 작성 방법
1. onSuccess: function(response) { user code }
2. onSuccess: foo(response) { user code }
response에 서버에서 받은 데이터, 통신 결과, options가 설정되어 있습니다.
responstText: text 형태의 데이터
responeXML: XML 형태의 데이터
params: callback function에 넘겨줄 사용자가 작성한 파라미터
completeStatus: Complete 상태가 코드로 설정되어 있습니다.
'S': Success, 'F': Failure, 'T': Timeout
params {Object} (optional) default : ''  
onSuccess, updateSuccess 프로퍼티에 지정한 method를 호출할 때 넘겨줄 파라미터
callbackScope {Object} (optional)  
통신이 성공 또는 실패했을 때 실행할 method의 scope (default : this - 메서드에서 this를 설정)
onFailure {Function} default : this - 메서드에서 this를 설정  
서버와 통신이 실패했을 때 실행할 callback function을 지정합니다.
통신 과정에서 Exception 발생
서버 program이 존재하지 않는 것과 같은 비정상적인 통신 종료
강제로 통신을 abort 시킨 경우
timeout {Number} (optional) default : 0  
자동으로 통신을 종료하는 시간을 의미하며 시간은 1/1000초 단위입니다.
값을 지정한 경우에 실행되며 default value가 0이므로 값을 지정하지 않으면 실행되지 않습 니다.
onTimeout {Function} (optional) default : false  
timeout이 발생했을 때 실행할 function을 지정합니다.
data {String/Boolean} default : ''  
서버로 전송할 데이터. data 작성 형태에 따라 MethodChain에서 인코딩을 합니다.
{name: value} --> name=value 형태로 인코딩
{name: ['foo', 'bar']} --> name=foo&name=bar 형태로 인코딩
form {Boolean|String} (optional) default : false  
< form > 전체를 전송하려면 form#id를 지정합니다.
input, textArea, select 엘리먼트의 데이터가 전송됩니다.
disabled 상태이면 전송에서 제외됩니다.
useName {Boolean} (optional) default : true  
form options에 form#id를 지정한 경우, name 속성을 전송하며 name 속성을 작성하지 않으면 전송하지 않습니다.
false를 지정하면 name 대신 id를 사용하며, < select >의 name보다 < option >의 id, name 순서로 사용합니다.
caching {Boolean} (optional) default : false  
get 방식일 때 서버의 데이터가 변경되지 않으면 수신을 하지 않게 되므로 callback을 실행하지 않습니다.
true 지정: 데이터 변경에 관계없이 통신할 때마다 callback을 실행하며, caching=(new Date().getTime())
값이 URL 마지막에 첨부되어 전송됩니다.
interval {Number} (optional) default : 100  
통신 진행 상태를 체크하는 interval을 1/1000초 단위로 지정합니다.
message {String} (optional) default: 'Processing...'  
통신이 진행되고 있음을 알리는 글을 작성합니다.
showElement {String} (optional) default: null  
message에 작성한 글을 표시할 Element 또는 Element id를 지정합니다.
showMessage에 true를 지정하면 서버에서 데이터를 받기 전까지는 message가 showElement에 표시되고
통신이 종료되면 서버의 데이터가 표시됩니다.
showMessage {Boolean} (optional) default: false  
message 표시 여부를 지정합니다.
true 지정: meassage가 showElement에 표시됩니다. 통신이 종료되면 자동으로 message가 표시되지 않습니다.
useScripts {Boolean} (optional) default: false  
서버에서 받은 responseText에 < script >의 작성 여부를 지정합니다
true 지정: < script >를 실행한 후 onSuccess() 또는 updateSuccess()를 실행합니다.
put {Function} default: false  
< script > 처리와 관련된 기능을 put() 메서드에 정의합니다.
put() 메서드가 작성되어 있으면 Method Chain의 default 메서드 대신 put() 메서드가 실행됩니다.
put() 메서드의 파라미터에 Transport 오브젝트가 설정되므로 데이터 및 통신과 관련된 정보를 이용할 수 있습니다.
put()을 사용하기 위해서는 useScripts를 true로 지정해야 합니다.
put()에 넘겨줄 파라미터와 값은 options에 정의하면 이를 put() 메서드에서 사용할 수 있습니다.
repeat {Number} (optional) default: 5000  
반복적으로 HTTP 통신을 실행하는 주기 시간으로 1/1000 초 단위로 지정합니다.
mc.Http.repeat()를 호출하고 repeat option을 지정하지 않으면 5초로 설정됩니다.
Method this.chain
request (Hash options)  
XHR 인스턴스를 생성하여 통신을 하고 그 결과를 설정합니다.
getHeader (Object trans, String pty) Hash
response Header 항목을 추출합니다.
getTransport (Object trans, String pty) Hash/String
request(options)와 response가 설정한 오브젝트(Transport)에서 지정한 property 값을 추출합니다.
getOptions (String opts) Hash
default options 값을 추출합니다.
setOptions (String opts) Hash
options의 default 값을 설정합니다. 이미 설정된 값이 있으면 replace됩니다.
removeOptions (String opts) Hash
options의 option을 제거합니다.
repeat (Hash opts) Hash
지정한 간격으로 통신을 실행합니다.
cancelRepeat ()  
repeat() 실행을 취소합니다.
 

Demo

Form 전송
Form을 전송하는 예제 입니다.