88.使用JavaScript发送GET or Post 请求

本文介绍了如何通过JavaScript创建一个隐藏的表单并提交,从而实现GET或POST请求。在示例中,通过点击事件触发函数account(),将参数序列化并附加到表单中,然后提交表单。在后端,使用了Spring MVC的@RequestMapping接收请求参数,并利用阿里巴巴的FastJSON库进行JSON数据的转换。推荐使用FastJSON,同时提供了所需的jar包和工具类JSONUtil的部分代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 首先点击事件 或者a标签连接 到js函数

<a class="btn_pay" href="javascript:account();">去结算</a>

2.然后写 function

//进入订单页面
function account() 
{
var url = "Order/enOrderViaCart";
var itemCartsJSON = '${itemCartsJson}';
var totalJSON = '${totalJson}';
var params = {itemCarts:itemCartsJSON, total:totalJSON};
var temp = document.createElement("form");
   temp.action = url;
   temp.method = "post";
   temp.style.display = "none";
   for (var x in params) {
       var opt = document.createElement("input");
       opt.name = x;
       opt.value = params[x];
       temp.appendChild(opt);
   }
   document.body.appendChild(temp);
   temp.submit();
   return temp;
}

3.然后进入action或者叫control,反正就是控制层

@RequestMapping(value = "/enOrderViaCart" )
public String  enOrderViaCart(HttpSession session, @RequestParam("itemCarts") String itemCartsJson, 
@RequestParam("total") String totalJson, Model model)


List<ItemCart> itemCarts = JSONUtil.getListObj(itemCartsJson, ItemCart.class);

Map<String, Object> total = JSONUtil.getMapObj(totalJson);

本人用的 alibaba的fastJSON,很好用推荐大家使用,这是我的工具类,感兴趣的可以直接copy,另外要下载三个jar包,网上可以下到,如果不想下载可以找我要 QQ 2032478859 

fastjson-1.1.37.jar

httpclient-4.2.5.jar

httpcore-4.4.4.jar

下面是我的工具类 JSONUtil 



package com.saiyou.util;


import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;
import org.apache.http.util.TextUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;


import java.util.List;
import java.util.Map;


/**
 * json工具类
 * 
 * @author Robin 2014年7月14日 上午11:23:21
 */
public class JSONUtil {


    protected static Logger jSONUtil = LoggerFactory.getLogger(JSONUtil.class);


    /**
     * 根据一个对象输出为json格式字符串
     * 
     * @param value
     * @return
     */
    public static String object2JSON(Object value) {
        String str = JSON.toJSONString(value);
        return str;
    }


    /**
     * 根据json字符串生成一个java对象
     * 
     * @param jsonText
     * @param clazz
     * @return
     */
    public static <T> T json2Object(String jsonText, Class<T> clazz) {
        return JSON.parseObject(jsonText, clazz);
    }


    /**
     * 对单个javabean进行解析
     * 
     * @param <T>
     * @param json 要解析的json字符串
     * @param cls
     * @return
     */
    public static <T> T getObj(String json, Class<T> cls) {
        T t = null;
        try {
            t = JSON.parseObject(json, cls);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return t;
    }


    /**
     * 对list类型进行解析
     * 
     * @param <T>
     * @param json
     * @param cls
     * @return
     */
    public static <T> List<T> getListObj(String json, Class<T> cls) {
        List<T> list = null;
        if (!TextUtils.isEmpty(json)) {
            try {
                list = JSON.parseArray(json, cls);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        return list;
    }


    /**
     * 对MapString类型数据进行解析
     * 
     * @param json
     * @return
     */
    public static Map<String, String> getMapStr(String json) {
        Map<String, String> mapStr = null;
        if (!TextUtils.isEmpty(json)) {
            try {
                mapStr = JSON.parseObject(json, new TypeReference<Map<String, String>>() {
                });
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        return mapStr;
    }
    /**
     * 对MapInteger类型数据进行解析
     * 
     * @param json
     * @return
     */
    public static Map<Integer, Integer> getMapInt(String json) {
        Map<Integer, Integer> mapStr = null;
        if (!TextUtils.isEmpty(json)) {
            try {
                mapStr = JSON.parseObject(json, new TypeReference<Map<Integer, Integer>>() {
                });
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        return mapStr;
    }
    /**
     * 对MapObject类型数据进行解析
     * 
     * @param json
     * @return
     */
    public static Map<String, Object> getMapObj(String json) {
        Map<String, Object> mapStr = null;
        if (!TextUtils.isEmpty(json)) {
            try {
                mapStr = JSON.parseObject(json, new TypeReference<Map<String, Object>>() {
                });
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        return mapStr;
    }


    /**
     * 对list map obj类型进行解析
     * 
     * @param json
     * @return
     */
    public static List<Map<String, Object>> getListMap(String json) {
        List<Map<String, Object>> list = null;
        if (!TextUtils.isEmpty(json)) {
            try {
                list = JSON.parseObject(json, new TypeReference<List<Map<String, Object>>>() {
                });
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        return list;
    }


    /**
     * 对list map String类型进行解析
     * 
     * @param json
     * @return
     */
    public static List<Map<String, String>> getListMapStr(String json) {
        List<Map<String, String>> list = null;
        if (!TextUtils.isEmpty(json)) {
            try {
                list = JSON.parseObject(json, new TypeReference<List<Map<String, String>>>() {
                });
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        return list;
    }


}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值