- Util.fetch = function(path,callback) {
- if (callback && typeof callback != 'function')
- callback = null;
- if (Util.IS_NODE) {
- var fs = require("fs");
- if (callback) {
- fs.readFile(path,function(err,data) {
- if (err)
- callback(null);
- else
- callback(""+data);
- });
- } else
- try {
- return fs.readFileSync(path);
- } catch (e) {
- return null;
- }
- } else {
- if(cc.sys.isNative) {
- //Native版本需要特殊处理下ProtoBuf的读取方式
- var msg = jsb.fileUtils.getStringFromFile(path);
- if(callback){
- callback(msg);
- }else{
- return msg;
- }
- }else{
- var xhr = Util.XHR();
- xhr.open('GET',path,callback ? true : false);
- // xhr.setRequestHeader('User-Agent','XMLHTTP/1.0');
- xhr.setRequestHeader('Accept','text/plain');
- if (typeof xhr.overrideMimeType === 'function') xhr.overrideMimeType('text/plain');
- if (callback) {
- xhr.onreadystatechange = function() {
- if (xhr.readyState != 4) return;
- if (/* remote */ xhr.status == 200 || /* local */ (xhr.status == 0 && typeof xhr.responseText === 'string'))
- callback(xhr.responseText);
- else
- callback(null);
- };
- if (xhr.readyState == 4)
- return;
- xhr.send(null);
- } else {
- xhr.send(null);
- if (/* remote */ xhr.status == 200 || /* local */ (xhr.status == 0 && typeof xhr.responseText === 'string'))
- return xhr.responseText;
- return null;
- }
- }
- }
- };