【cocos2d-js网络教程篇】cocos2d-js http网络请求
2024-08-25 04:55:29
前言
刚入手cocos2d-js,看到网上的JS的http网络请求,大部分都是错的。原因在于,js-tests里面的网络请求实例没有给出加载完成事件。正确的加载完成事件如下:
var xhr = cc.loader.getXMLHttpRequest();
xhr.open("POST", url);
xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=UTF-8");
xhr["onloadend"] = function(){
};
Http.js完整类
var Http = cc.Class.extend({
m_inst : null, //实例
url : "http://127.0.0.1:8080/request.php", ctor : function(){
}, /*
* 网络请求之GET
* url 请求的网络地址
* callback 回调参数
* */
getWithUrl : function(url,callback){
var xhr = cc.loader.getXMLHttpRequest();
xhr.open("GET",url,true);
xhr["onloadend"] = function () {
if (xhr.readyState == 4 && (xhr.status >= 200 && xhr.status <= 207)) {
err = false;
}else{
err = true;
}
var response = xhr.responseText;
callback(err,response);
};
xhr.send();
}, /*
* 网络请求之POST
* url 请求的网络地址
* params 请求参数 ("id=1&id=2&id=3")
* callback 回调参数
['loadstart', 'abort', 'error', 'load', 'loadend', 'timeout']
* */
sendWithUrl : function(url, params, callback){ var xhr = cc.loader.getXMLHttpRequest();
xhr.open("POST", url);
xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=UTF-8");
xhr["onloadend"] = function(){ var sc = -1
if (xhr.readyState == 4 && (xhr.status >= 200 && xhr.status <= 207)) {
sc = 0;
} var json = JSON.parse(xhr.responseText)
var rc = parseInt(json["code"]) callback(sc, rc, json); if(sc == 0 && (rc != 0) && RETCODE[rc + ""])
{
Alert.getInst().show(RETCODE[rc + ""])
}
else if(sc != 0 || rc != 0 ){
Alert.getInst().show("sc: " + sc + " rc: " + rc)
}
}
xhr.send(params);
}
}); //获取实例
Http.inst = function() {
if (Http.m_inst == null) {
Http.m_inst = new Http();
}
return Http.m_inst;
};
使用方法
Http.inst()->sendWithUrl("http://127.0.0.1:8080/request.php", "id=1&id=2&id=3", function(sc, rc, response){
cc.log("返回数据" + response);
});
最新文章
- 安装.Net Framework3.5
- js填写银行卡号,每隔4位数字加一个空格
- iOS NSString中字符串的删除,替换
- UML状态图(转载)
- SPRING IN ACTION 第4版笔记-第四章ASPECT-ORIENTED SPRING-011-注入AspectJ Aspect
- mybatis简单应用(基于配置文件)
- CocoaPods的安装及安装出现问题的处理
- 基于visual Studio2013解决C语言竞赛题之1051数的顺序
- 【十八】php文件下载源码
- HDU 2682 Tree
- 买帽子 (hash)
- Ball HDU - 4811
- PyCharm 项目删除
- K-means算法性能评估及其优化
- JavaScript的函数声明与函数表达式的区别
- 安卓自动化测试,贺晓聪之uiautomator设备和选择器~Python详解
- javascript 模拟java 实现继承的5种方式
- VS中的调试相关的技巧
- 架构模式数据源模式之:数据映射器(Data Mapper)
- CAC的Debian-8-64bit安装BBR正确打开方式