我想將JSON轉換後的數據(html代碼)發送到requestGet
Servlet。我的代碼是絕對正確的,其中POST請求發送到servlet,但在將字符串轉換爲JSON時出現錯誤。將字符串轉換爲JavaScript中的JSON文本
我使用MyEclipse的其中當我運行這段代碼就說明
「JSON是未定義」
但是當我將它保存爲HTML和FF既不顯示試驗任何錯誤也不會向servlet發送任何請求。請建議我的方法是否通過POST方法將JSON文本發送到servlet是正確的。
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript" src="http://www.json.org/json2.js"></script>
<SCRIPT language="javascript">
var counter=0;
var controls=new Array();
function add(type) {
//Create an input type dynamically.
var element = document.createElement("input");
//Assign different attributes to the element.
element.setAttribute("type", type);
element.setAttribute("value", type);
element.setAttribute("name", type);
element.id=type+counter;
controls[counter]=element.id;
counter++;
var foo = document.getElementById("fooBar");
foo.appendChild(element);
}
function save(){
var data="";
var formTitle="Form1";
var method="post";
data="<HTML><HEAD><TITLE>"+formTitle+"</TITLE></HEAD><BODY><FORM METHOD="+method+"/>";
for(i=0;i<controls.length;i++){
var element=document.getElementById(controls[i]);
data+="<INPUT type=button id="+element.id+" value="+element.getAttribute("value")+"/>";
}
data+="</FORM></BODY></HTML>";
alert("Data::"+data);
DoSelectRecommendation(data);
}
/*
* code for sending request to the servlet.
*/
$(function() {
var frm = $(document.myform);
var dat = JSON.stringify(frm.serializeArray());
alert("I am about to POST this:\n\n" + dat);
$.post(
frm.attr("action"),
dat,
function(data) {
alert("Response: " + data);
}
);
});
var req;
function DoSelectRecommendation(Text) {
if(window.XMLHttpRequest && !(window.ActiveXObject)) {
try {
req = new XMLHttpRequest();
} catch(e) {
req = false;
}
} else if(window.ActiveXObject) {
try {
req = new ActiveXObject("Msxml2.XMLHTTP");
} catch(e) {
try {
req = new ActiveXObject("Microsoft.XMLHTTP");
} catch(e) {
req = false;
}
}
}
var url="http://localhost:8080/TestForJsp/requestGet";
req.open("POST",url,true);
req.setRequestHeader("Content-type","application/x-www-form-urlencoded");
req.send(Text);
req.onreadystatechange = inserter;
}
function inserter() {
if (req.readyState == 4) {
if (req.status == 200) {
var msg = req.responseText;
alert("msg = "+msg);
if (msg == "") {
document.getElementById("msg1").innerHTML = "<div style=\"color:red\">"+"COS NIE TAK"+"</div>";
//document.getElementById("msg1").value = "blabla";
}
else
document.getElementById("msg1").innerHTML = "<div style=\"color:red\">"+msg+"</div>";
//document.getElementById("msg1").value = "COOOO JEST";
}
}
究竟是什麼。你有jQuery,但你手動創建XHR並使用本地DOM方法 - 這是沒有意義的。 – ThiefMaster
+1以前的評論。以及爲什麼你串行化的表單數據在你的'post'請求中使用它。這也沒有任何意義。 – VisioN
實際上,我從網絡獲得這個代碼,請建議我如何從我的表單發送json格式的數據到servlet。我試圖將字符串轉換爲json,但沒有結果是現在我使用此代碼: - var str ='{「Data」:'+ cdlText +'}'; var jText = JSON.stringify(eval('('+ str +')')); alert(「CDL ::」+ jText);但它也不起作用 – ConceptSpecs