app_can 的AJax异步,两个解决方案

在返回头的content-type中设置为application/json
利用Appcan的Native模式开发的widget,也是属于跨域访问的范畴,因此,也会碰到上述情况,这里介绍两种Appcan中的解决方案:
一、Jquery的$.getJSON(url,function(data){});

第一个参数是url获取数据地址,第二个参数成功取得数据时调用;
其中,url中必须带有jsoncallback参数,参数值为"?",Jquery会在请求时替换为一个随机的唯一数:

http://xxxx.php?jsoncallback=?&name1=value1&name2=value2

用$.getJSON时,数据的返回格式要是xxx({"a":"1","b":"2"})
例如:
xxx({"status":"true","listData":[{"id":"261803","title":"虚拟投影键盘","name":"前沿科技","summary":"这款虚拟投影键盘设计独特,每一个敲击都不会相互干扰,可以同时接受。"},{"id":"261994","title":"科学家发现"最大黑洞"","name":"环球快递","summary":"美国加州大学伯克利分校的天文学家尼古拉斯•麦克康纳尔和他的同事发现了两个目前已知最大的黑洞。"}}]})
注意:需验证{"a":"1","b":"2"}json格式的正确性,可在jsonlint.com网站上验证,如果格式不合法将获取不到数据

二、Appcan封装的uexXmlHttpMgr对象

方法如下:
uexXmlHttpMgr.open(String inXmlHttpID, String inMethods, String inUrl);

第一个参数:

inXmlHttpID:异步请求操作ID;必须值。(随机不重复)

第二个参数:

inMethods:异步请求类型;(get,post)

第三个参数:

inUrl:异步请求地址;
通过uexXmlHttpMgr.onData函数获取值。
uexXmlHttpMgr.onData(inOpCode,inResult)
inOpCode:操作ID,由发起请求时传入的值,随机不重复;
inResult:服务器返回的任意数据;String类型。
使用方式:

<!DOCTYPE HTML>
<html>
  <head>
    <title>跨域异步请求接口</title>
   </head>
  <body>
    <div class="tit">跨域异步请求接口</div>
    <div class="conbor" id="my_result"></div>
    <script type="text/javascript">
      var url="http://192.168.1.5/musicmodel/api/user.api.php?m=param&appid=1000";
      function xmlHttp(){
        uexXmlHttpMgr.open("1", "GET",url,"");
        uexXmlHttpMgr.send("1");
      }
      function httpSuccess(opid,stauts,result){
        document.getElementById("my_result").innerHTML =result;
        uexXmlHttpMgr.close("1");
      }
      window.uexOnload = function(){
        uexXmlHttpMgr.onData = httpSuccess;
        uexWidgetOne.cbError = function(opCode, errorCode, errorInfo){
          alert(errorInfo);
        }
      }
     </script>
   </body>
</html>

该方法返回数据只要是正确的json格式就可以;






转载于:https://www.cnblogs.com/zhaoqiangxiaoxiao/p/3347054.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值