JavaScript的POST请求(JavaScript POST request)

2019-10-30 04:14发布

怎么可能让下面的JavaScript功能,发送POST请求,对收到productID参数而不是作为一个单一字符串变量而是作为一个集合productID的?

即在输出得到一个字符串,如:

“的productId = 126504&的productId = 126505&的productId = 126506&的productId = 126507&的productId = 126508”

 <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
 <script type="text/javascript">
 function addToCart(productId, returnUrl) {
    var form = $(document.createElement('form'))
    .attr('action', '/products/addtocart')
    .attr('method', 'post')
    .append(
        $(document.createElement('input'))
            .attr('type', 'hidden')
            .attr('name', 'productId')
            .val(productId)
    )
    .append(
        $(document.createElement('input'))
            .attr('type', 'hidden')
            .attr('name', 'returnUrl')
            .val(returnUrl)
    );
    $('body').append(form);
    form.submit();
}
</script>

编辑:

只是为了更清楚:当一个参数126504函数调用这个函数输出的productId = 126504。 如何通过多重的productID的126504,126505,126506,126507,126508为了得到函数输出126504&productId参数= 126505&productId参数= 126506&productId参数= 126507&productId参数= 126508?

我把从Silverlight应用程序的功能:

 HtmlPage.Window.Invoke("addToCart", "126504", "http://localhost:10930/Products");

Answer 1:

使用相同的名称添加相同的形式在多个输入项目,你应该得到你寻找什么。



Answer 2:

很抱歉,如果我的问题有点不清楚。 这是函数的一个变种,我已经成功地开始工作,因为我想要的东西:

    function addToCart3(path, params, method) {
    method = method || "post"; 
    var form = document.createElement("form");
    form.setAttribute("method", method);
    form.setAttribute("action", path);

    for (var i = 0, l = params.length; i < l; i++ ) {
        var hiddenField = document.createElement("input");
        hiddenField.setAttribute("type", "hidden");
        hiddenField.setAttribute("name", "productId");
        hiddenField.setAttribute("value", params[i]);
        form.appendChild(hiddenField);
    }
    document.body.appendChild(form); 
    form.submit();
}

如果传递给该函数字符串数组,根据需要,服务器获取数据

string[] arrstrpostdata = new string[] { "126504", "126505", "126506", "126507", "126508", "126509" };
HtmlPage.Window.Invoke("addToCart3", "http://localhost:10930/Cart/AddCollToCart", arrstrpostdata);


文章来源: JavaScript POST request