在安卓4.1.1的机器上,调用cc.loader.getXMLHttpRequest(); 然后send()之后程序崩溃。creator的版本是1.4.2.
代码如下:
sendRequest : function(path,data,handler,extraUrl){
console.log("start getXMLHttpRequest");
var xhr = cc.loader.getXMLHttpRequest();
console.log("111 getXMLHttpRequest");
xhr.timeout = 5000;
var str = "?";
for(var k in data){
if(str != "?"){
str += "&";
}
str += k + "=" + data[k];
}
if(extraUrl == null){
extraUrl = HTTP.url;
}
var requestURL = extraUrl + path + encodeURI(str);
console.log("RequestURL:" + requestURL);
xhr.open("GET",requestURL, true);
if (cc.sys.isNative){
xhr.setRequestHeader("Accept-Encoding","gzip,deflate","text/html;charset=UTF-8");
}
console.log("222 getXMLHttpRequest");
xhr.onreadystatechange = function() {
console.log("444 getXMLHttpRequest");
if(xhr.readyState === 4 && (xhr.status >= 200 && xhr.status < 300)){
console.log("http res("+ xhr.responseText.length + "):" + xhr.responseText);
try {
var ret = JSON.parse(xhr.responseText);
if(handler !== null){
handler(ret);
} /* code */
} catch (e) {
console.log("err:" + e);
//handler(null);
}
finally{
}
}
};
xhr.send();
console.log("333 getXMLHttpRequest");
return xhr;
},
log如下:
08-28 17:32:34.729 15585-15652 D/cocos2d-x debug info: start getXMLHttpRequest
08-28 17:32:34.729 15585-15652 D/cocos2d-x debug info: 111 getXMLHttpRequest
08-28 17:32:34.739 15585-15652 D/cocos2d-x debug info: RequestURL:xxxxxx
08-28 17:32:34.739 15585-15652 D/cocos2d-x debug info: 222 getXMLHttpRequest
08-28 17:32:34.739 15585-15652 D/cocos2d-x debug info: 333 getXMLHttpRequest
08-28 17:32:34.789 15585-15999 A/libc: Fatal signal 11 (SIGSEGV) at 0x00000000 (code=1), thread 15999 (Thread-2926)
08-28 17:32:35.140 214-214/? I/DEBUG: backtrace:
08-28 17:32:35.140 214-214/? I/DEBUG: #00 pc 0000e55c /system/lib/libc.so (strcpy+52)
08-28 17:32:35.140 214-214/? I/DEBUG: #01 pc 007cb408 /data/data/xxxxxx/lib/libcocos2djs.so (cocos2d::network::HttpClient::processResponse(cocos2d::network::HttpResponse*, char*)+1296)
请各位牛人看看啊!多谢!


