zoukankan      html  css  js  c++  java
  • 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格式就可以;






  • 相关阅读:
    由浅入深——从ArrayList浅谈并发容器
    Lambda表达式
    JVM初体验
    Redis主从复制
    Redis事务
    Redis基本命令
    Redis概述与安装
    Linux之SSH免密登录
    源码安装Nginx以及用systemctl管理
    CentOS 7 :Failed to start IPv4 firewall with iptables.
  • 原文地址:https://www.cnblogs.com/zhaoqiangxiaoxiao/p/3347054.html
Copyright © 2011-2022 走看看