2
我正在編寫一個應用程序,它能夠計算公式中編寫的數字。在HTML我已經把這:使用Ajax的Servlet - POST可以工作,但GET不會
<input type="text" size="20" id="number2" onblur="validate2()"
onFocus = "document.getElementById('msg2').innerHTML = ' '">
<br>
<div id = "message1"> </div>
我創建了一個JavaScript這首先驗證DATAS後來將它們插入到「答案配方」:
function validate2() {
var idField2 = document.getElementById("number2");
var data2 = "number2=" + encodeURIComponent(idField2.value);
if (typeof XMLHttpRequest != "undefined") {
req = new XMLHttpRequest();
} else if (window.ActiveXObject) {
req = new ActiveXObject("Microsoft.XMLHTTP");
}
var url = "Validator"
req.open("GET", url, true);
req.onreadystatechange = inserter2
req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded")
;
req.send(data2);
}
function inserter2() {
if (req.readyState == 4) {
if (req.status == 200) {
var msg1 = req.responseText
if (msg1 == "") {
document.getElementById("message1").innerHTML = "<div style=\"color:red\">Zła nazwa</div>";
document.getElementById("org").value = ''
}
else
document.getElementById("org").value = msg2
}
}
}
這裏是我的代碼中正在發送它的doGet:
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("GET");
response.setContentType("text/html");
Writer out = response.getWriter();
String num2 = request.getParameter("number2");
System.out.println(num2);
String org = new String();
if(num2.matches("[\\p{Punct}\\d]+")) {
ScriptEngineManager mgr = new ScriptEngineManager();
ScriptEngine engine = mgr.getEngineByName("JavaScript");
try {
org = engine.eval(num2).toString() + " (" + request.getMethod() + ")";
} catch (Exception e) {
e.printStackTrace();
}
}
out.write(org != null ? org : "");
}
如果我們改變所有這些東西進入後,該代碼將工作,但現在它是GET,它不會在所有的工作。另一個奇怪的情況是,使用POST的公式可以讀取公式中的書面內容,但由於我們使用的是GET,因此程序將公式源視爲null。
我檢查你的代碼,但它不爲我工作:( 還是同樣的問題。 – Ganjira
能否請您分享您在github上什麼應用程序,所以我可以用它玩?我無法重現這個問題,也許它隱藏在代碼中的某處,這個問題沒有列出。 – Maks