Javascript servlet中的空JSON

Javascript servlet中的空JSON,javascript,ajax,json,servlets,Javascript,Ajax,Json,Servlets,我通过AJAX发送JSOn,并在servlet中发送null JAVASCRIPT 函数创建JSON function submitTheValues(event, id, price, count) { var searchEleWithinDiv = document.getElementById("content").children; var table = searchEleWithinDiv[1]; var qty = table.rows[count].

我通过AJAX发送JSOn,并在servlet中发送null

JAVASCRIPT

函数创建JSON

  function submitTheValues(event, id, price, count) {
    var searchEleWithinDiv = document.getElementById("content").children;
    var table = searchEleWithinDiv[1];
    var qty = table.rows[count].cells[8].children[0].value;
    var acNo = table.rows[count].cells[10].children[0].value;
   var jsonStr = '{"reagentid": id, "account": acNo,"quantity":           
     qty, "reagentcount":count}';      
    var jsonObj = eval("(" + jsonStr + ")");
    return jsonObj;
  }
AJAX代码 var xmlhttp=new XMLHttpRequest()

    if (window.XMLHttpRequest)
    {// code for IE7+, Firefox, Chrome, Opera, Safari
            xmlhttp=new XMLHttpRequest();
    }
    else
    {// code for IE6, IE5
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.onreadystatechange=function()
    {
        if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
            if(xmlhttp.responseText !=null) 
            {
                var searchEleWithinDiv = document.getElementById("content").children;
                var table = searchEleWithinDiv[1];
                var btn = table.rows[count].cells[11].children[0].value;
                btn.value = "Added to Cart";
            }
        }
    }
    var url = "<%=request.getContextPath()%>/displaycartservlet";
    var jsonObj = this.submitTheValues(event, id, price, count);
    var jsonOb = JSON.stringify(jsonObj);


     xmlhttp.open("POST", url, true);
     xmlhttp.setRequestHeader("Content-type", "application/json");
     xmlhttp.send(jsonOb);       
}
SERVLET代码

     String jsonPar = request.getParameter("json");

您将无法使用
getParameter
从帖子正文中读取JSON,请参阅

要在参数中获得json,我想您只是忘记了mime类型末尾的
d
。 您有
“应用程序/x-www-form-urlencode”

此外,您还可以使用
eval
清理一些实际上并不需要的代码。 只需直接创建对象:

function submitTheValues(event, id, price, count) {
    var searchEleWithinDiv = document.getElementById("content").children;
    var table = searchEleWithinDiv[1];
    var qty = table.rows[count].cells[8].children[0].value;
    var acNo = table.rows[count].cells[10].children[0].value;
    return {
        reagentid: id,
        account: acNo,
        quanitity: qty,
        reagentcount: count
    };
}
然后清理了这里的名字:

var url = "<%=request.getContextPath()%>/displaycartservlet";
var obj = this.submitTheValues(event, id, price, count);
var jsonObj = JSON.stringify(obj);
var url=“/displaycartservlet”;
var obj=此。提交值(事件、id、价格、计数);
var jsonObj=JSON.stringify(obj);
选中,如果要使用x-www-form-urlencode,您将看到需要边界参数。但要发送一个简单的JSON字符串,您可以使用:

    xmlhttp.setRequestHeader("Content-type", "application/json");    
并且应该工作(在我的模块中)

如果您仍然想使用表单,最简单的方法是:

<form id="myform">
    <input name="text" type="text"/>
    <select name="month">
        <option name="ene">Enero</option>
        <option name="feb">Febrero</option>
    </select>
</form>
<script>
    var xhr = new XMLHttpRequest();

    xhr.onreadystatechange = function(){
        if(this.readyState == 4 && this.status == 200)
                alert(this.responseText);
    }

    xhr.open("POST", "server.php");//i use php, but you can change to your servlet here

    function send(){
        xhr.send(new FormData(document.getElementById('myform')));
    }

</script>

<button onclick="send()">Enviar</button>  

埃内罗
费夫雷罗
var xhr=new XMLHttpRequest();
xhr.onreadystatechange=函数(){
if(this.readyState==4&&this.status==200)
警报(this.responseText);
}
open(“POST”,“server.php”)//我使用php,但您可以在这里更改为servlet
函数send(){
send(newformdata(document.getElementById('myform'));
}
羡慕
钥匙在哪里使用

    xmlhttp.setRequestHeader("Content-type", "application/json");    
<form id="myform">
    <input name="text" type="text"/>
    <select name="month">
        <option name="ene">Enero</option>
        <option name="feb">Febrero</option>
    </select>
</form>
<script>
    var xhr = new XMLHttpRequest();

    xhr.onreadystatechange = function(){
        if(this.readyState == 4 && this.status == 200)
                alert(this.responseText);
    }

    xhr.open("POST", "server.php");//i use php, but you can change to your servlet here

    function send(){
        xhr.send(new FormData(document.getElementById('myform')));
    }

</script>

<button onclick="send()">Enviar</button>