網絡請求Request

appcan.ajax(options)

發起一個ajax請求,並獲取相應的內容css

  1. options:發起ajax的請求的參數,這個必須是一個對象
  2. options.type:請求的類型,包括GETPOST
  3. options.appVerify:是否在請求頭中加入appVerify字段 truefalse
  4. options.certificate({password:'',path:'default'})添加證書信息
  5.   password:數字證書密碼。當使用appcan默認證書時,此參數爲空(或」」)
  6.   path:路徑,支持 file://,res://,wgt://等協議路徑,詳見CONSTANT中PathTypes。 當傳入‘default’時,本次請求將取appcan默認數字證書。
  7. options.url:要請求的地址 注:get方式請求中攜帶中文參數,須要對參數進行encode編碼,具體函數:encodeURIComponent
  8. options.data:要請求的URL的參數,若是要上傳文件則data數據中必須傳一個對象包含一個pathkey 例如:data:{file:{path:'a.jpeg'},file2:{path:'b.jpeg'}}上傳a.jpeg,b.jpeg圖片
  9. options.contentType:默認: false 要傳給服務端的數據內容的'content-Type'經過header,若是設置其餘content將會直接把data發送出去
  10. options.dataType:服務端的響應類型,包括json, jsonp, script, xml, html, text中的一種
  11. options.timeout:請求的超時時間
  12. options.headers:要設置的請求頭
  13. options.xhrFields:要重載的請求對象的字段
  14. options.beforeSend(xhr, settings):請求發送以前的回調,返回false取消請求發送
  15. options.success(data, status,,requestCode,response, xhr):請求發送成功後的回調
  16.   requestCode: 服務器響應狀態碼,成功爲200,失敗爲404,-1等;
  17.  reponse: JSON格式字符串:
  18. {
  19. "responseHeaders": 「」,//請求頭
  20. "responseStatusCode": 「」,//狀態碼
  21. "responseStatusMessage": 「」,//狀態碼的信息
  22. "responseError": 「」//錯誤信息
  23. }
  24. options.error(xhr, errorType, error,msg):請求若是出現錯誤後的回調;msg: 錯誤詳細信息,服務器返回的result信息
  25. options.complete(xhr, status):請求完成後的回調,無論是否出錯
  26. options.progress(progress, xhr):上傳的進度,只有包含上傳文件的時候纔會執行該回調
  27. options.cache:是否緩存請求
  28. options.offline:是否直接調用離線數據,包括true,false,undefined
  29.    **offline參數說明:**
  30.      true: 直接調用緩存數據,若是緩存數據不存在,執行ajax請求並離線緩存返回數據;
  31.      false: 直接請求ajax數據,並把請求到的數據離線緩存;
  32.     undefined: 直接請求ajax數據,不緩存請求到的數據;
  33. options.offlineDataPath:自定義離線數據文件存儲目錄
  34. options.expires:離線緩存過時時間,支持類型:
  35.  1.number類型(單位:毫秒),緩存過時時長,
  36.  2.W3c IOS 8601 DateTime格式,詳見http://www.w3.org/TR/NOTE-datetime ,緩存過時時間點
  37. options.crypto:true/false 離線緩存時是否加密
  38. options.password: "string" 離線緩存加密密碼

例如:html

  1. appcan.ajax({
  2. url : 'http://weixin.appcan.cn:8086/test/get',
  3. type : 'GET',
  4. data : {
  5. a : 'hello word',
  6. b : 'page'
  7. },
  8. offline : true,
  9. offlineDataPath : 'wgt://aaa/',
  10. success : function(data) {
  11. alert(data);
  12. },
  13. error : function(e) {
  14. alert(e);
  15. }
  16. });

例如:ajax

  1. A.number格式
  2. appcan.ajax({
  3. url : 'http://weixin.appcan.cn:8086/test/get',
  4. type : 'GET',
  5. data : {
  6. a : 'hello word',
  7. b : 'page'
  8. },
  9. offline : true,
  10. expires:3000,
  11. success : function(data) {
  12. alert(data);
  13. }, error : function(e) {
  14. alert(e);
  15. }
  16. });
  17. B.ISO 8601格式
  18. appcan.ajax({
  19. url : 'http://weixin.appcan.cn:8086/test/get',
  20. type : 'GET',
  21. data : {
  22. a : 'hello word',
  23. b : 'page'
  24. },
  25. offline : true,
  26. expires : '2015-05-16 ',
  27. success : function(data) {
  28. alert(data);
  29. },
  30. error : function(e) {
  31. alert(e);
  32. }
  33. });

例如:json

  1. appcan.ajax({
  2. url:http://115.29.138.150:8086/test/get,
  3. type:"GET",
  4. data:{}, dataType:"json",
  5. timeout:30000,
  6. success:function(data, status, requestCode, response, xhr) {
  7. alert("status:" + status);
  8. alert("result:" + data);
  9. alert("requestCode:" + requestCode);
  10. alert("response:" + JSON.stringify(response));
  11. alert("xhr:" + JSON.stringify(xhr));
  12. }, error:function(xhr,erroType,error,msg) {
  13. alert("erroType:" + erroType);
  14. alert("error:" + error);
  15. alert("msg:" + msg);
  16. alert("xhr:" + JSON.stringify(xhr));
  17. }
  18. });
  19. //獲取appcan.cn頁面
  20. appcan.ajax({
  21. type : 'GET',
  22. url : 'http://appcan.cn',
  23. //添加參數
  24. data : {
  25. name : 'appcan'
  26. },
  27. //指望的返回類型
  28. dataType : 'html',
  29. timeout : 300, //超時時間
  30. success : function(data) {
  31. //獲取內容
  32. alert('data');
  33. },
  34. error : function(xhr, type) {
  35. alert('Ajax error!')
  36. },
  37. offline : true
  38. })

離線緩存加解密例子:緩存

  1. appcan.ajax({
  2. url : "http://weixin.appcan.cn:8086/test/get",
  3. type : "GET",
  4. data : {
  5. a : 'hello word',
  6. b : 'page'
  7. },
  8. dataType : "json",
  9. timeout : 30000,
  10. offline : true,
  11. crypto : true,
  12. password : "pwd",
  13. success : function(data, status, requestCode, response, xhr) {
  14. alert("status:" + status);
  15. alert("result:" + data);
  16. alert("requestCode:" + requestCode);
  17. alert("response:" + JSON.stringify(response));
  18. alert("xhr:" + JSON.stringify(xhr));
  19. },
  20. error : function(xhr, erroType, error, msg) {
  21. alert("erroType:" + erroType);
  22. alert("error:" + error);
  23. alert("msg:" + msg);
  24. alert("xhr:" + JSON.stringify(xhr));
  25. }
  26. });

appcan.request.ajax(options)

請參考 :appcan.ajax(options)發起一個ajax請求,並獲取相應的內容服務器

  1. options:發起ajax的請求的參數,這個必須是一個對象
  2. options.type:請求的類型,包括GETPOST
  3. options.appVerify:是否在請求頭中加入appVerify字段 truefalse
  4. options.url:要請求的地址 注:get方式請求中攜帶中文參數,須要對參數進行encode編碼,具體函數:encodeURIComponent
  5. options.data:要請求的URL的參數,若是要上傳文件則data數據中必須傳一個對象包含一個pathkey 例如:data:{file:{path:'a.jpeg'}}上傳a.jpeg圖片
  6. options.contentType:默認: false 要傳給服務端的數據內容的'content-Type'經過header,若是設置其餘content將會直接把data發送出去
  7. options.dataType:服務端的響應類型,包括json, jsonp, script, xml, html, text中的一種
  8. options.timeout:請求的超時時間
  9. options.headers:要設置的請求頭
  10. options.xhrFields:要重載的請求對象的字段
  11. options.beforeSend(xhr, settings):請求發送以前的回調,返回false取消請求發送
  12. options.success(data, status,requestCode,response, xhr):請求發送成功後的回調 
  13.   **requestCodereponse說明:** 
  14.     requestCode: 服務器響應狀態碼,成功爲200,失敗爲404,-1等;
  15.     reponse: JSON格式字符串:
  16.    {
  17.     "responseHeaders": 「」,//請求頭
  18.     "responseStatusCode": 「」,//狀態碼
  19.     "responseStatusMessage": 「」,//狀態碼的信息
  20.     "responseError": 「」//錯誤信息
  21.    }
  22. options.error(xhr, errorType, error,msg):請求若是出現錯誤後的回調;msg: 錯誤詳細信息,服務器返回的result信息
  23. options.complete(xhr, status):請求完成後的回調,無論是否出錯
  24. options.progress(progress, xhr):上傳的進度,只有包含上傳文件的時候纔會執行該回調
  25. options.certificate:添加證書信息 {password:'',path:''}其中password是證書的密碼,path是證書的地址
  26. options.cache:是否緩存請求
  27. options.offline:是否直接調用離線數據,包括true,false,undefined
  28.   **offline參數說明:**
  29.    true: 直接調用緩存數據,若是緩存數據不存在,執行ajax請求並離線緩存返回數據;
  30.   false: 直接請求ajax數據,並把請求到的數據離線緩存;
  31.   undefined: 直接請求ajax數據,不緩存請求到的數據;
  32. options.offlineDataPath:自定義離線數據文件存儲目錄
  33. options.expires:離線緩存過時時間,支持類型:
  34.  1.number類型(單位:毫秒),緩存過時時長,
  35.  2.W3c IOS 8601 DateTime格式,詳見http://www.w3.org/TR/NOTE-datetime ,緩存過時時間點
  36. options.crypto:true/false 離線緩存時是否加密
  37. options.password: "string" 離線緩存加密密碼

例如:app

  1. appcan.ajax({
  2. url : 'http://weixin.appcan.cn:8086/test/get',
  3. type : 'GET',
  4. data : {
  5. a : 'hello word',
  6. b : 'page'
  7. },
  8. offline : true,
  9. offlineDataPath : 'wgt://aaa/',
  10. success : function(data) {
  11. alert(data);
  12. },
  13. error : function(e) {
  14. alert(e);
  15. }
  16. });
  17. 例如:
  18. A.number格式
  19. appcan.ajax({
  20. url : 'http://weixin.appcan.cn:8086/test/get',
  21. type : 'GET',
  22. data : {
  23. a : 'hello word',
  24. b : 'page'
  25. },
  26. offline : true,
  27. expires:3000,
  28. success : function(data) {
  29. alert(data);
  30. }, error : function(e) {
  31. alert(e);
  32. }
  33. });
  34. B.ISO 8601格式
  35. appcan.request.ajax({
  36. url : 'http://weixin.appcan.cn:8086/test/get',
  37. type : 'GET',
  38. data : {
  39. a : 'hello word',
  40. b : 'page'
  41. },
  42. offline : true,
  43. expires : '2015-05-16 ',
  44. success : function(data) {
  45. alert(data);
  46. },
  47. error : function(e) {
  48. alert(e);
  49. }
  50. });

例如:函數

  1. appcan.request.ajax({
  2. url:http://115.29.138.150:8086/test/get,
  3. type:"GET",
  4. data:{}, dataType:"json",
  5. timeout:30000,
  6. success:function(data, status, requestCode, response, xhr) {
  7. alert("status:" + status);
  8. alert("result:" + data);
  9. alert("requestCode:" + requestCode);
  10. alert("response:" + JSON.stringify(response));
  11. alert("xhr:" + JSON.stringify(xhr));
  12. }, error:function(xhr,erroType,error,msg) {
  13. alert("xhr:" + JSON.stringify(xhr));
  14. alert("erroType:" + erroType);
  15. alert("error:" + error);
  16. alert("msg:" + msg);
  17. }
  18. });
  19. //獲取appcan.cn頁面
  20. appcan.request.ajax({
  21. type : 'GET',
  22. url : 'http://appcan.cn',
  23. //添加參數
  24. data : {
  25. name : 'appcan'
  26. },
  27. //指望的返回類型
  28. dataType : 'html',
  29. timeout : 300, //超時時間
  30. success : function(data) {
  31. //獲取內容
  32. alert('data');
  33. },
  34. error : function(xhr, type) {
  35. alert('Ajax error!')
  36. },
  37. offline : true
  38. })
  39. //另一種使用方式
  40. var request = appcan.require('request');
  41. request.ajax({
  42. type : 'POST',
  43. url : 'http://appcan.cn/reg',
  44. data : {
  45. name : 'appcan'
  46. },
  47. contentType : 'application/json',
  48. success : function() {
  49. }
  50. })
  51. //獲取appcan.cn頁面
  52. appcan.request.ajax({
  53. type : 'GET',
  54. url : 'http://appcan.cn',
  55. //添加參數
  56. data : {
  57. name : 'appcan'
  58. },
  59. //指望的返回類型
  60. dataType : 'html',
  61. timeout : 300, //超時時間
  62. success : function(data) {
  63. //獲取內容
  64. alert('data');
  65. },
  66. error : function(xhr, type) {
  67. alert('Ajax error!')
  68. }
  69. })
  70. //例如發送一個post請求,地址爲模擬用
  71. request.ajax({
  72. type : 'POST',
  73. url : 'http://appcan.cn/reg',
  74. data : {
  75. name : 'appcan'
  76. },
  77. contentType : 'application/json',
  78. success : function() {
  79. }
  80. })

離線緩存加解密例子:post

  1. appcan.ajax({
  2. url : "http://weixin.appcan.cn:8086/test/get",
  3. type : "GET",
  4. data : {
  5. a : 'hello word',
  6. b : 'page'
  7. },
  8. dataType : "json",
  9. timeout : 30000,
  10. offline : true,
  11. crypto : true,
  12. password : "pwd",
  13. success : function(data, status, requestCode, response, xhr) {
  14. alert("status:" + status);
  15. alert("result:" + data);
  16. alert("requestCode:" + requestCode);
  17. alert("response:" + JSON.stringify(response));
  18. alert("xhr:" + JSON.stringify(xhr));
  19. },
  20. error : function(xhr, erroType, error, msg) {
  21. alert("erroType:" + erroType);
  22. alert("error:" + error);
  23. alert("msg:" + msg);
  24. alert("xhr:" + JSON.stringify(xhr));
  25. }
  26. });

appcan.request.get(url,[data],success,[dataType])

發一個http Get請求,這是appcan.request.ajax的簡寫jsonp

  1. url:要請求的地址
  2. data:該參數不是必須的,要傳遞的參數
  3. success:成功後的回調函數,參考appcan.request.ajax參數中的success
  4. dataType:返回的響應結果的數據類型

例如:

  1. //請求appcan.cn頁面的內容
  2. appcan.request.get('http://appcan.cn', function(data, status, xhr) {
  3. //數據內容
  4. console.log(data);
  5. });
  6. //另一種使用方式
  7. var request = appcan.require('request');
  8. request.get('http://appcan.cn', function(data, status, xhr) {
  9. //數據內容
  10. console.log(data);
  11. });
  12. appcan.request.post(url, [data], success,[dataType])
  13. 發起一個http Post請求
  14. url:要請求的地址
  15. data:要發出的請求的參數
  16. success:請求的成功的回調
  17. dataType:返回的響應結果的數據類型
  18. 例如:
  19. //發送一個簡單的post數據到appcan.cn
  20. appcan.request.post('http://appcan.cn', {
  21. name : 'appcan'
  22. }, function(data, status, xhr) {
  23. //打印結果
  24. console.log(data);
  25. });
  26. //另一種使用方式
  27. var request = appcan.require('request');
  28. request.post('http://appcan.cn', {
  29. name : 'appcan'
  30. }, function(data, status, xhr) {
  31. //打印結果
  32. console.log(data);
  33. });

appcan.request.getJSON(url,[data],success)

發起一個http get請求來獲取json數據

  1. url:要獲取的json數據的地址
  2. data:要發送請求的參數
  3. success:成功後的回調

例如:

  1. //獲取一個json數據
  2. appcan.request.getJSON('http://appcan.cn/a.json', function(data) {
  3. //打印json數據
  4. console.log(data);
  5. });
  6. //另外一種使用方式
  7. var request = appcan.require('request');
  8. request.getJSON('http://appcan.cn/a.json', function(data) {
  9. //打印json數據
  10. console.log(data);
  11. });

appcan.request.postForm(selector,success,error)

序列化表單內容並提交表單

  1. selector:表單的css選擇器,或者是form元素
  2. success(data):表單提交成功後的回調,data服務器端的返回值
  3. error(err):表單提交失敗的時候的回調,err錯誤對象

例如:

  1. //獲取一個json數據
  2. $('form').on('submit', function() {
  3. var form = $('from');
  4. appcan.request.postForm(form);
  5. return false;
  6. });
  7. //另外一種使用方式
  8. var request = appcan.require('request');
  9. $('form').on('submit', function() {
  10. var form = $('from');
  11. request.postForm(form);
  12. return false;
  13. });

appcan.request.clearOffline(url,callback,data)

  1. url:須要清除離線數據的url
  2. callback(err,data,dataType,optId) : 執行成功後的回調函數
  3. data:與appcan.request.ajax參數中的data相同

例如:

  1. //清除指定url的離線緩存數據
  2. appcan.request.clearOffline({
  3. url : 'http://weixin.appcan.cn:8086/test/get',
  4. callback : function(err, data, dataType, optId) {
  5. if (err) {
  6. //清除緩存錯誤
  7. return;
  8. }
  9. if (data == 0) {
  10. //清除緩存成功
  11. } else {
  12. //清除緩存失敗
  13. }
  14. }
  15. });

例如:

  1. //清除指定url的離線緩存數據
  2. appcan.request.clearOffline({
  3. url : 'http://weixin.appcan.cn:8086/test/get',
  4. callback : function(err, data, dataType, optId) {
  5. if (err) {
  6. //清除緩存錯誤
  7. return;
  8. }
  9. if (data == 0) {
  10. //清除緩存成功
  11. } else {
  12. //清除緩存失敗
  13. }
  14. },
  15. data:{
  16. a : 'hello word',
  17. b : 'page'
  18. }
  19. });
  20. a
相關文章
相關標籤/搜索