小说客户端XMLHttpRequest对象

在前端开发中有一种异步刷新技术—AJAX,俗称阿贾克斯;在web中HTTP请求很普遍,cocos2d-js引擎也对其进行了移植,无论是JSB平台,还是cocos2d-html中Web平台,都可以使用。

XMLHttpRequest对象中常用的函数和属性:

  1. open(request-type, url, asynch)。 与服务器连接,创建新的请求。
    • request-type GET/POST
    • url URL
    • asynch true为异步连接,false为同步连接,默认true。
  2. send()。 向服务器发送请求。
  3. abort()。 退出当前请求。
  4. readyState。当请请求的就绪状态,其中4表示准备就绪。
  5. status。 HTTP请求状态码,200表示成功请求。
  6. onreadystatechange。 服务器请求处理完回调函数。

给个例子吧

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
var HttpCtrl = cc.Class.extend({
doGet:function(url,cb){
var xhr = cc.loader.getXMLHttpRequest();
xhr.open("GET", url, true);
xhr.onreadystatechange = function() {
cb(xhr);
};
xhr.send();
},
doPost:function(url,data,cb){
var xhr = cc.loader.getXMLHttpRequest();
xhr.open("POST", url);
xhr.onreadystatechange = function(){
cb(xhr);
};
xhr.send(data);
},
sendReq:function(tag,type,data){
var url= http://192.168.1.1:8080;
var xhr = cc.loader.getXMLHttpRequest();
xhr.tag=tag;
if (type=="GET" && data) {
url=url+data;
}
xhr.open(type, url);
//xhr.setRequestHeader("Content-Type","text/plain;charset=UTF-8");
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
if (xhr.status >= 200 && xhr.status <= 207) {
TODO;
}
}else{
TODO;
}
}
};
if (type=="POST") {
xhr.send(data);
}else{
xhr.send();
}
}
}