Javascript servlet中的空JSON
我通过AJAX发送JSOn,并在servlet中发送null JAVASCRIPT 函数创建JSONJavascript 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].
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>