appcan.ajax(options)
發起一個ajax請求,並獲取相應的內容css
options:發起ajax的請求的參數,這個必須是一個對象
options.type:請求的類型,包括GET、POST等
options.appVerify:是否在請求頭中加入appVerify字段 true、false
options.certificate({password:'',path:'default'})添加證書信息
password:數字證書密碼。當使用appcan默認證書時,此參數爲空(或」」)
path:路徑,支持 file://,res://,wgt://等協議路徑,詳見CONSTANT中PathTypes。 當傳入‘default’時,本次請求將取appcan默認數字證書。
options.url:要請求的地址 注:get方式請求中攜帶中文參數,須要對參數進行encode編碼,具體函數:encodeURIComponent
options.data:要請求的URL的參數,若是要上傳文件則data數據中必須傳一個對象包含一個path的key 例如:data:{file:{path:'a.jpeg'},file2:{path:'b.jpeg'}}上傳a.jpeg,b.jpeg圖片
options.contentType:默認: false 要傳給服務端的數據內容的'content-Type'經過header,若是設置其餘content將會直接把data發送出去
options.dataType:服務端的響應類型,包括json, jsonp, script, xml, html, text中的一種
options.timeout:請求的超時時間
options.headers:要設置的請求頭
options.xhrFields:要重載的請求對象的字段
options.beforeSend(xhr, settings):請求發送以前的回調,返回false取消請求發送
options.success(data, status,,requestCode,response, xhr):請求發送成功後的回調
requestCode: 服務器響應狀態碼,成功爲200,失敗爲404,-1等;
reponse: JSON格式字符串:
{
"responseHeaders": 「」,//請求頭
"responseStatusCode": 「」,//狀態碼
"responseStatusMessage": 「」,//狀態碼的信息
"responseError": 「」//錯誤信息
}
options.error(xhr, errorType, error,msg):請求若是出現錯誤後的回調;msg: 錯誤詳細信息,服務器返回的result信息
options.complete(xhr, status):請求完成後的回調,無論是否出錯
options.progress(progress, xhr):上傳的進度,只有包含上傳文件的時候纔會執行該回調
options.cache:是否緩存請求
options.offline:是否直接調用離線數據,包括true,false,undefined
**offline參數說明:**
true: 直接調用緩存數據,若是緩存數據不存在,執行ajax請求並離線緩存返回數據;
false: 直接請求ajax數據,並把請求到的數據離線緩存;
undefined: 直接請求ajax數據,不緩存請求到的數據;
options.offlineDataPath:自定義離線數據文件存儲目錄
options.expires:離線緩存過時時間,支持類型:
1.number類型(單位:毫秒),緩存過時時長,
2.W3c IOS 8601 DateTime格式,詳見http://www.w3.org/TR/NOTE-datetime ,緩存過時時間點
options.crypto:true/false 離線緩存時是否加密
options.password: "string" 離線緩存加密密碼
例如:html
appcan.ajax({
url : 'http://weixin.appcan.cn:8086/test/get',
type : 'GET',
data : {
a : 'hello word',
b : 'page'
},
offline : true,
offlineDataPath : 'wgt://aaa/',
success : function(data) {
alert(data);
},
error : function(e) {
alert(e);
}
});
例如:ajax
A.number格式
appcan.ajax({
url : 'http://weixin.appcan.cn:8086/test/get',
type : 'GET',
data : {
a : 'hello word',
b : 'page'
},
offline : true,
expires:3000,
success : function(data) {
alert(data);
}, error : function(e) {
alert(e);
}
});
B.ISO 8601格式
appcan.ajax({
url : 'http://weixin.appcan.cn:8086/test/get',
type : 'GET',
data : {
a : 'hello word',
b : 'page'
},
offline : true,
expires : '2015-05-16 ',
success : function(data) {
alert(data);
},
error : function(e) {
alert(e);
}
});
例如:json
appcan.ajax({
url:http://115.29.138.150:8086/test/get,
type:"GET",
data:{}, dataType:"json",
timeout:30000,
success:function(data, status, requestCode, response, xhr) {
alert("status:" + status);
alert("result:" + data);
alert("requestCode:" + requestCode);
alert("response:" + JSON.stringify(response));
alert("xhr:" + JSON.stringify(xhr));
}, error:function(xhr,erroType,error,msg) {
alert("erroType:" + erroType);
alert("error:" + error);
alert("msg:" + msg);
alert("xhr:" + JSON.stringify(xhr));
}
});
//獲取appcan.cn頁面
appcan.ajax({
type : 'GET',
url : 'http://appcan.cn',
//添加參數
data : {
name : 'appcan'
},
//指望的返回類型
dataType : 'html',
timeout : 300, //超時時間
success : function(data) {
//獲取內容
alert('data');
},
error : function(xhr, type) {
alert('Ajax error!')
},
offline : true
})
離線緩存加解密例子:緩存
appcan.ajax({
url : "http://weixin.appcan.cn:8086/test/get",
type : "GET",
data : {
a : 'hello word',
b : 'page'
},
dataType : "json",
timeout : 30000,
offline : true,
crypto : true,
password : "pwd",
success : function(data, status, requestCode, response, xhr) {
alert("status:" + status);
alert("result:" + data);
alert("requestCode:" + requestCode);
alert("response:" + JSON.stringify(response));
alert("xhr:" + JSON.stringify(xhr));
},
error : function(xhr, erroType, error, msg) {
alert("erroType:" + erroType);
alert("error:" + error);
alert("msg:" + msg);
alert("xhr:" + JSON.stringify(xhr));
}
});
appcan.request.ajax(options)
請參考 :appcan.ajax(options)發起一個ajax請求,並獲取相應的內容服務器
options:發起ajax的請求的參數,這個必須是一個對象
options.type:請求的類型,包括GET、POST等
options.appVerify:是否在請求頭中加入appVerify字段 true、false
options.url:要請求的地址 注:get方式請求中攜帶中文參數,須要對參數進行encode編碼,具體函數:encodeURIComponent
options.data:要請求的URL的參數,若是要上傳文件則data數據中必須傳一個對象包含一個path的key 例如:data:{file:{path:'a.jpeg'}}上傳a.jpeg圖片
options.contentType:默認: false 要傳給服務端的數據內容的'content-Type'經過header,若是設置其餘content將會直接把data發送出去
options.dataType:服務端的響應類型,包括json, jsonp, script, xml, html, text中的一種
options.timeout:請求的超時時間
options.headers:要設置的請求頭
options.xhrFields:要重載的請求對象的字段
options.beforeSend(xhr, settings):請求發送以前的回調,返回false取消請求發送
options.success(data, status,requestCode,response, xhr):請求發送成功後的回調
**requestCode、reponse說明:**
requestCode: 服務器響應狀態碼,成功爲200,失敗爲404,-1等;
reponse: JSON格式字符串:
{
"responseHeaders": 「」,//請求頭
"responseStatusCode": 「」,//狀態碼
"responseStatusMessage": 「」,//狀態碼的信息
"responseError": 「」//錯誤信息
}
options.error(xhr, errorType, error,msg):請求若是出現錯誤後的回調;msg: 錯誤詳細信息,服務器返回的result信息
options.complete(xhr, status):請求完成後的回調,無論是否出錯
options.progress(progress, xhr):上傳的進度,只有包含上傳文件的時候纔會執行該回調
options.certificate:添加證書信息 {password:'',path:''}其中password是證書的密碼,path是證書的地址
options.cache:是否緩存請求
options.offline:是否直接調用離線數據,包括true,false,undefined
**offline參數說明:**
true: 直接調用緩存數據,若是緩存數據不存在,執行ajax請求並離線緩存返回數據;
false: 直接請求ajax數據,並把請求到的數據離線緩存;
undefined: 直接請求ajax數據,不緩存請求到的數據;
options.offlineDataPath:自定義離線數據文件存儲目錄
options.expires:離線緩存過時時間,支持類型:
1.number類型(單位:毫秒),緩存過時時長,
2.W3c IOS 8601 DateTime格式,詳見http://www.w3.org/TR/NOTE-datetime ,緩存過時時間點
options.crypto:true/false 離線緩存時是否加密
options.password: "string" 離線緩存加密密碼
例如:app
appcan.ajax({
url : 'http://weixin.appcan.cn:8086/test/get',
type : 'GET',
data : {
a : 'hello word',
b : 'page'
},
offline : true,
offlineDataPath : 'wgt://aaa/',
success : function(data) {
alert(data);
},
error : function(e) {
alert(e);
}
});
例如:
A.number格式
appcan.ajax({
url : 'http://weixin.appcan.cn:8086/test/get',
type : 'GET',
data : {
a : 'hello word',
b : 'page'
},
offline : true,
expires:3000,
success : function(data) {
alert(data);
}, error : function(e) {
alert(e);
}
});
B.ISO 8601格式
appcan.request.ajax({
url : 'http://weixin.appcan.cn:8086/test/get',
type : 'GET',
data : {
a : 'hello word',
b : 'page'
},
offline : true,
expires : '2015-05-16 ',
success : function(data) {
alert(data);
},
error : function(e) {
alert(e);
}
});
例如:函數
appcan.request.ajax({
url:http://115.29.138.150:8086/test/get,
type:"GET",
data:{}, dataType:"json",
timeout:30000,
success:function(data, status, requestCode, response, xhr) {
alert("status:" + status);
alert("result:" + data);
alert("requestCode:" + requestCode);
alert("response:" + JSON.stringify(response));
alert("xhr:" + JSON.stringify(xhr));
}, error:function(xhr,erroType,error,msg) {
alert("xhr:" + JSON.stringify(xhr));
alert("erroType:" + erroType);
alert("error:" + error);
alert("msg:" + msg);
}
});
//獲取appcan.cn頁面
appcan.request.ajax({
type : 'GET',
url : 'http://appcan.cn',
//添加參數
data : {
name : 'appcan'
},
//指望的返回類型
dataType : 'html',
timeout : 300, //超時時間
success : function(data) {
//獲取內容
alert('data');
},
error : function(xhr, type) {
alert('Ajax error!')
},
offline : true
})
//另一種使用方式
var request = appcan.require('request');
request.ajax({
type : 'POST',
url : 'http://appcan.cn/reg',
data : {
name : 'appcan'
},
contentType : 'application/json',
success : function() {
}
})
//獲取appcan.cn頁面
appcan.request.ajax({
type : 'GET',
url : 'http://appcan.cn',
//添加參數
data : {
name : 'appcan'
},
//指望的返回類型
dataType : 'html',
timeout : 300, //超時時間
success : function(data) {
//獲取內容
alert('data');
},
error : function(xhr, type) {
alert('Ajax error!')
}
})
//例如發送一個post請求,地址爲模擬用
request.ajax({
type : 'POST',
url : 'http://appcan.cn/reg',
data : {
name : 'appcan'
},
contentType : 'application/json',
success : function() {
}
})
離線緩存加解密例子:post
appcan.ajax({
url : "http://weixin.appcan.cn:8086/test/get",
type : "GET",
data : {
a : 'hello word',
b : 'page'
},
dataType : "json",
timeout : 30000,
offline : true,
crypto : true,
password : "pwd",
success : function(data, status, requestCode, response, xhr) {
alert("status:" + status);
alert("result:" + data);
alert("requestCode:" + requestCode);
alert("response:" + JSON.stringify(response));
alert("xhr:" + JSON.stringify(xhr));
},
error : function(xhr, erroType, error, msg) {
alert("erroType:" + erroType);
alert("error:" + error);
alert("msg:" + msg);
alert("xhr:" + JSON.stringify(xhr));
}
});
appcan.request.get(url,[data],success,[dataType])
發一個http Get請求,這是appcan.request.ajax的簡寫jsonp
url:要請求的地址
data:該參數不是必須的,要傳遞的參數
success:成功後的回調函數,參考appcan.request.ajax參數中的success
dataType:返回的響應結果的數據類型
例如:
//請求appcan.cn頁面的內容
appcan.request.get('http://appcan.cn', function(data, status, xhr) {
//數據內容
console.log(data);
});
//另一種使用方式
var request = appcan.require('request');
request.get('http://appcan.cn', function(data, status, xhr) {
//數據內容
console.log(data);
});
appcan.request.post(url, [data], success,[dataType])
發起一個http Post請求
url:要請求的地址
data:要發出的請求的參數
success:請求的成功的回調
dataType:返回的響應結果的數據類型
例如:
//發送一個簡單的post數據到appcan.cn
appcan.request.post('http://appcan.cn', {
name : 'appcan'
}, function(data, status, xhr) {
//打印結果
console.log(data);
});
//另一種使用方式
var request = appcan.require('request');
request.post('http://appcan.cn', {
name : 'appcan'
}, function(data, status, xhr) {
//打印結果
console.log(data);
});
appcan.request.getJSON(url,[data],success)
發起一個http get請求來獲取json數據
url:要獲取的json數據的地址
data:要發送請求的參數
success:成功後的回調
例如:
//獲取一個json數據
appcan.request.getJSON('http://appcan.cn/a.json', function(data) {
//打印json數據
console.log(data);
});
//另外一種使用方式
var request = appcan.require('request');
request.getJSON('http://appcan.cn/a.json', function(data) {
//打印json數據
console.log(data);
});
appcan.request.postForm(selector,success,error)
序列化表單內容並提交表單
selector:表單的css選擇器,或者是form元素
success(data):表單提交成功後的回調,data服務器端的返回值
error(err):表單提交失敗的時候的回調,err錯誤對象
例如:
//獲取一個json數據
$('form').on('submit', function() {
var form = $('from');
appcan.request.postForm(form);
return false;
});
//另外一種使用方式
var request = appcan.require('request');
$('form').on('submit', function() {
var form = $('from');
request.postForm(form);
return false;
});
appcan.request.clearOffline(url,callback,data)
url:須要清除離線數據的url
callback(err,data,dataType,optId) : 執行成功後的回調函數
data:與appcan.request.ajax參數中的data相同
例如:
//清除指定url的離線緩存數據
appcan.request.clearOffline({
url : 'http://weixin.appcan.cn:8086/test/get',
callback : function(err, data, dataType, optId) {
if (err) {
//清除緩存錯誤
return;
}
if (data == 0) {
//清除緩存成功
} else {
//清除緩存失敗
}
}
});
例如:
//清除指定url的離線緩存數據
appcan.request.clearOffline({
url : 'http://weixin.appcan.cn:8086/test/get',
callback : function(err, data, dataType, optId) {
if (err) {
//清除緩存錯誤
return;
}
if (data == 0) {
//清除緩存成功
} else {
//清除緩存失敗
}
},
data:{
a : 'hello word',
b : 'page'
}
});
a