0
I'm using XMLHttpRequest POST to send data to a jsp. But the jsp is not invoked. Here is my code.
的JS方法被調用點擊一個按鈕XMLHttpRequest的POST調用不工作
<form action="">
<div><input type="button" value="POST DATA"
onclick=test();
/></div></form>
JS方法做一個HTTP POST -
<script>
function test() {
var xmlHttpRequest = new ActiveXObject('Msxml2.XMLHTTP');
xmlHttpRequest.open("post",
"http://localhost:4502/content/myTest.html", true);
xmlHttpRequest.setRequestHeader("Content-Type",
"application/x-www-form-urlencoded");
xmlHttpRequest.onreadystatechange = function() {
getResult(xmlHttpRequest)
};
try {
xmlHttpRequest.send("username=john");
} catch (e) {
alert("error" + e);
}
}
function getResult(xmlHttpRequest) {
if (xmlHttpRequest.readyState == 4) {
if (xmlHttpRequest.status == 200) {
alert("ok");
} else {
alert("error" + xmlHttpRequest.status);
}
}
}
</script>
myTest.jsp寫POST請求一個文本文件 -
<%
FileOutputStream fos = new FileOutputStream("D:/test.txt");
PrintWriter pw = new PrintWriter(fos);
pw.println(request.getParameter("username"));
%>
myTest.jsp is沒有被調用,但我得到了OK警報。如果我嘗試http get而不是post並將參數追加到uri,它就會起作用。我正在使用IE8。
請幫忙。
是的,我能夠創建一個功能齊全的jquery ajax xmlhttprequest,但是他們的api沒有他們的服務器上的Allow-Control-Access-Origin設置,用於'安全原因'。 – JosephMCasey
如果您正在點擊的服務支持JSONP,它將解決此問題。如果它不支持它,也許它應該。另見http://stackoverflow.com/questions/20518653/jsonp-cross-origin-error-no-access-control-allow-origin-header-is-present – Shawn