$(function(){
    init();
})

function init(){
  myShopCar();//加载购物车信息
}
//我的购物车
function myShopCar(){
   var result = "";
    var callType = "GET";//请求方式 
    var dataType = "json";//数据类型text xml json  script  jsonp 
    param = {
        "userid":usid
    };
    var params = JSON.stringify(param);
    var userDetailUrl = rootPath+"webresources/products/queryMyShopCar?params="+params;
    if(""!= usid){
        result = sendAjaxRequest(userDetailUrl,callType,dataType);
        setMyShopList(result.data);
    } 
}


//我的购物车界面
function setMyShopList(objVal){

    $("#shopCarId").html("");
    shopHtml="";
    shopHtml+='<table width="100%" border="0" cellspacing="0" cellpadding="0" class="tab02"> ';
    shopHtml+='<tr> ';
    shopHtml+='<td  class="ta" style="width:8%;"><input id="allCheckBox" type="checkBox" value="product1" onclick="selectAll();" />全选</td> ';
    shopHtml+='<td  class="ta" style="width:60%;">商品名称</td> ';
    shopHtml+='<td  class="ta">单价</td> ';
    shopHtml+='<td  class="ta">操作</td> ';
    shopHtml+='</tr> ';
    for(var i=0; i<objVal.length; i++){
            shopHtml+='<tr> ';
            shopHtml+='<td><input id="'+objVal[i].productId+'" name="cartCheckBox" type="checkBox" value="product1" onclick="selectSingle()"></td> ';
            shopHtml+='<td ><img class="newsListsImg" src="'+rootPathImage+objVal[i].imgurl+'"> ';
            shopHtml+='<a href="#"  style="color:#1965B3">'+objVal[i].productName+'</a></td> ';
            shopHtml+='<td style="color:#FE6400">¥'+objVal[i].Productprice+'</td> ';
            shopHtml+="<td  ><a href=\"javascript:delSelect('"+objVal[i].Shopcarid+"');\"  style='color:#1965B3'> 删除</a></td>";
            shopHtml+='</tr> ';
    }
    shopHtml+='<tr > ';
    shopHtml+='<td colspan="4" style="text-align:center;"><input onclick="submit();" type="button" value="购买产品"/></td> ';
    shopHtml+='</tr> ';
    shopHtml+='</table> ';
    $("#shopCarId").append(shopHtml);
}

/**
 * 删除选择的购物车产品
 * @param shopcarid 
 */
function delSelect(shopcarid){
        var result = "";
        var callType = "GET";//请求方式 
        var dataType = "json";//数据类型text xml json  script  jsonp 
        param = {
            "shopcarid":shopcarid
         };
        var params = JSON.stringify(param);
        var delUrl=rootPath+'webresources/products/deleteMyShopCar?params='+params;
        if(""!= shopcarid){
        result = sendAjaxRequest(delUrl,dataType);
        if(result){
            alert("删除成功!");
            myShopCar();
        }else{
            alert("删除失败!");
        }
        
        
    }
}
//公共ajax方法,取得返回的整个JSON对象
/**
 * 公共ajax方法,取得返回的整个JSON对象
 *
 * @param callUrl
 *            访问地址
 * @param callType
 *            请求类型("get" or "post")
 * @param dataType
 *             请求的数据类型
 * @returns 返回json数据,如后台返回的是{"SUCCESS": true,"DATA":
 *          {"goodsName":"商品添加","price":"56.0","username":"巴金"},"msg":"成功!"} 那么返回值是
 *          DATA的值:{"goodsName":"商品添加","username":"巴金"}             
 */
function sendAjaxRequest(callUrl,dataType) {
    var resultData = "";
    $.ajax( {
        type : callType,//请求方式  
        url : callUrl,//地址,就是action请求路径 
        async : false,dataType : dataType,//数据类型text xml json  script  jsonp  
        success : function (data) {
            //返回的参数就是 action里面所有的有get和set方法的参数  
            resultData = data;
        }
    });
    return resultData;
}
     //查询我的购物车    
    @GET
    @Path("queryMyShopCar")
    @Produces(MediaType.APPLICATION_JSON + ";charset=UTF-8")
    public JSONObject queryMyShopCar(@QueryParam("params") String params) {
        JSONObject jsonObj = (JSONObject) JSONObject.parse(params);
        String userid = jsonObj.getString("userid");
        ApplicationModule am = Configuration.createRootApplicationModule(Constant.AMDEF,Constant.CONfig);
        ViewObject vo = am.findViewObject("QueryProductDetailView1");
        QueryProductDetailViewImpl tpo = (QueryProductDetailViewImpl) vo;
        Row row = tpo.queryMyShop(userid);
        JSONObject contentObj = null;
        JSONArray contentArray = new JSONArray();
        JSONObject obj = null;
        try {
            contentObj = new JSONObject();
            contentObj.put(Constant.SUCCESS,true);
            contentObj.put(Constant.MSG,"查询成功");
            contentObj.put(Constant.DATA,contentArray);
            while (row != null) {
                obj = new JSONObject();
                obj.put("productName",row.getAttribute("Productname") == null ? "" : row.getAttribute("Productname")); 
                obj.put("Addtime",row.getAttribute("Addtime") == null ? "" : row.getAttribute("Addtime"));
                obj.put("Productprice",row.getAttribute("Productprice") == null ? "" : row.getAttribute("Productprice")); 
                obj.put("Productenname",row.getAttribute("Productenname") == null ? "" : row.getAttribute("Productenname"));
                obj.put("Shopcarid",row.getAttribute("Shopcarid") == null ? "" : row.getAttribute("Shopcarid"));
                obj.put("productId",row.getAttribute("Id") == null ? "" : row.getAttribute("Id"));
                obj.put("imgurl",row.getAttribute("imgurl") == null ? "" : row.getAttribute("imgurl"));
                contentArray.add(obj);
                row = tpo.next();
            }
        } catch (Exception e) {
            e.printstacktrace();
            contentObj = new JSONObject();
            contentObj.put(Constant.SUCCESS,false);
            contentObj.put(Constant.MSG,e.getMessage());
            contentObj.put(Constant.DATA,contentArray);
        }finally {
            Configuration.releaseRootApplicationModule(am,true);
        }
        return contentObj;
    }
    //删除选中产品
    @GET
    @Path("deleteMyShopCar")
    @Produces(MediaType.APPLICATION_JSON + ";charset=UTF-8")
    public Boolean deleteMyShopCar(@QueryParam("params") String params) {
        Boolean result = false;
        JSONObject jsonObj = (JSONObject) JSONObject.parse(params);
        String shopcarid = jsonObj.getString("shopcarid");
        ApplicationModule am = Configuration.createRootApplicationModule(Constant.AMDEF,Constant.CONfig);
        try {
            ViewObject vo = am.findViewObject("TShoppingCartView1");
            TShoppingCartViewImpl tpo = (TShoppingCartViewImpl) vo;
            Boolean bl = tpo.deleteMyShop(shopcarid);
            if (bl) {
                am.getTransaction().commit();
                result = true;
            } else {
                result = false;
            }
        } catch (Exception e) {
            result = false;
            e.printstacktrace();
        } finally {
            Configuration.releaseRootApplicationModule(am,true);
        }
        return result;
    }

Ajax 调用restful服务返回json的更多相关文章

  1. 如何防止其他iOS / Android应用程序使用我的RESTful API?

    我有一个预先存在的iOS&Android应用程序,我正在进行更新,包括RESTful服务API和用于身份验证的Facebook登录.该应用程序的一般流程是:>用户通过Facebook的SDK“登录”到我的应用程序,该SDK将访问令牌返回到我的应用程序.>App调用RESTful服务,包括Facebook访问令牌作为参数(使用HTTPS和SSL)>被呼叫的服务将收到的访问令牌(以及仅存储在我的服务器

  2. 使用IOS进行身份验证的Restful API调用

    我正在使用prestashopAPI使用restfulAPI调用的应用程序.我是IOS的新手我在android中编写了相同的方法:它适用于Android.对于IOS,我使用了这种编码,但我没有从服务器获取数据.请告诉我我做错了什么并提供任何解决方案.谢谢!解决方法您可以通过这种方式构建URL字符串,它应该可以工作:–我不相信使用HTTP头字段

  3. 应用程序关闭时的iOS任务

    我正在构建一个应用程序,通过ajax将文件上传到服务器.问题是用户很可能有时不会有互联网连接,并且客户希望在用户重新连接时安排ajax调用.这可能是用户在离线时安排文件上传并关闭应用程序.应用程序关闭时可以进行ajax调用吗?

  4. android – Phonegap本地构建 – jquery ajax错误:readystate 0 responsetext status 0 statustext error

    解决方法您是否在索引文件中包含了内容安全元标记?

  5. android – 在Internet上发布我的RESTful Web服务

    什么是最好的方法?例如,我可以使用AmazonWebServices或ApacheHTTPServer吗?

  6. Ajax简单的异步交互及Ajax原生编写

    一提到异步交互大家就会说ajax,仿佛ajax这个技术已经成为了异步交互的代名词.那下面将研究ajax的核心对象

  7. Ajax跨域问题的解决办法汇总(推荐)

    本文给大家分享多种方法解决Ajax跨域问题,非常不错具有参考借鉴价值,感兴趣的朋友一起学习吧

  8. ajax编写简单的登录页面

    这篇文章主要为大家详细介绍了ajax编写简单登录页面的具体代码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  9. ajax从JSP传递对象数组到后台的方法

    今天小编就为大家分享一篇ajax从JSP传递对象数组到后台的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

  10. 解决ajax返回验证的时候总是弹出error错误的方法

    这篇文章主要介绍了解决ajax返回验证的时候总是弹出error错误的方法,感兴趣的小伙伴们可以参考一下

随机推荐

  1. xe-ajax-mock 前端虚拟服务

    最新版本见Github,点击查看历史版本基于XEAjax扩展的Mock虚拟服务插件;对于前后端分离的开发模式,ajax+mock使前端不再依赖后端接口开发效率更高。CDN使用script方式安装,XEAjaxMock会定义为全局变量生产环境请使用xe-ajax-mock.min.js,更小的压缩版本,可以带来更快的速度体验。

  2. vue 使用 xe-ajax

    安装完成后自动挂载在vue实例this.$ajaxCDN安装使用script方式安装,VXEAjax会定义为全局变量生产环境请使用vxe-ajax.min.js,更小的压缩版本,可以带来更快的速度体验。cdnjs获取最新版本点击浏览已发布的所有npm包源码unpkg获取最新版本点击浏览已发布的所有npm包源码AMD安装require.js安装示例ES6Module安装通过Vue.use()来全局安装示例./Home.vue

  3. AJAX POST数据中文乱码解决

    前端使用encodeURI进行编码后台java.net.URLDecoder进行解码编解码工具

  4. Koa2框架利用CORS完成跨域ajax请求

    实现跨域ajax请求的方式有很多,其中一个是利用CORS,而这个方法关键是在服务器端进行配置。本文仅对能够完成正常跨域ajax响应的,最基本的配置进行说明。这样OPTIONS请求就能够通过了。至此为止,相当于仅仅完成了预检,还没发送真正的请求呢。

  5. form提交时,ajax上传文件并更新到&lt;input&gt;中的value字段

  6. ajax的cache作用

    filePath="+escape;},error:{alert;}});解决方案:1.加cache:false2.url加随机数正常代码:网上高人解读:cache的作用就是第一次请求完毕之后,如果再次去请求,可以直接从缓存里面读取而不是再到服务器端读取。

  7. 浅谈ajax上传文件属性contentType = false

    默认值为contentType="application/x-www-form-urlencoded".在默认情况下,内容编码类型满足大多数情况。在这里,我们主要谈谈contentType=false.在使用ajax上传文件时:在其中先封装了一个formData对象,然后使用post方法将文件传给服务器。说到这,我们发现在JQueryajax()方法中我们使contentType=false,这不是冲突了吗?这就是因为当我们在form标签中设置了enctype=“multipart/form-data”,

  8. 909422229_ajaxFileUpload上传文件

    ajaxFileUpload.js很多同名的,因为做出来一个很容易。我上github搜AjaxFileUpload出来很多类似js。ajaxFileUpload是一个异步上传文件的jQuery插件传一个不知道什么版本的上来,以后不用到处找了。语法:$.ajaxFileUploadoptions参数说明:1、url上传处理程序地址。2,fileElementId需要上传的文件域的ID,即的ID。3,secureuri是否启用安全提交,默认为false。4,dataType服务器返回的数据类型。6,error

  9. AJAX-Cache:一款好用的Ajax缓存插件

    原文链接AJAX-Cache是什么Ajax是前端开发必不可少的数据获取手段,在频繁的异步请求业务中,我们往往需要利用“缓存”提升界面响应速度,减少网络资源占用。AJAX-Cache是一款jQuery缓存插件,可以为$.ajax()方法扩展缓存功能。

  10. jsf – Ajax update/render在已渲染属性的组件上不起作用

    我试图ajax更新一个有条件渲染的组件。我可以确保#{user}实际上是可用的。这是怎么引起的,我该如何解决呢?必须始终在ajax可以重新呈现之前呈现组件。Ajax正在使用JavaScriptdocument.getElementById()来查找需要更新的组件。但是如果JSF没有将组件放在第一位,那么JavaScript找不到要更新的内容。解决方案是简单地引用总是渲染的父组件。

返回
顶部