html
하나의 버튼 이있는 간단한 페이지가 있습니다.
<html>
<head>
<script>
function sender() {
var oReq = new XMLHttpRequest();
oReq.open('GET', 'http://localhost:8888?param2=value2', true);
oReq.onreadystatechange = function() {
if (oReq.readyState == 4) {
if (oReq.status == 200) {
alert(xmlhttp.responseText);
}
if (oReq.status == 404) {
alert("404040404!");
}
}
};
oReq.send();
}
</script>
</head>
<body>
<button id="click" onclick="sender();">Send</button>
</body>
</html>
그리고 들어오는 요청을 읽고 콘솔을 보여주는 것 외에는 아무것도하지 않는 Java로 작성된 간단한 http 서버가 있습니다.
그러나 서버에서 내 파일에 응답을 보내는 방법은 무엇입니까? 예를 들어 내 파일이 있습니다.
file:///C:/Users/Admin/Desktop/development/test.html
그리고 요청은 다음과 같습니다.
GET /?param2=value2 HTTP/1.1
Host: localhost:8888
User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:28.0) Gecko/20100101 Firefox/28.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en,ru-ru;q=0.8,ru;q=0.5,en-us;q=0.3
Accept-Encoding: gzip, deflate
Origin: null
Connection: keep-alive
Header parsing result: param2=value2
응답은 어디서 어떻게 보내나요?
서버가 다음과 같은 헤더를 읽고 있습니다.
BufferedReader reader = new BufferedReader(new InputStreamReader(
sock.getInputStream()));
StringBuilder sb = new StringBuilder();
String line = null;
while (true) {
line = reader.readLine();
if (line == null || line.isEmpty())
break;
sb.append(line + System.getProperty("line.separator"));
}
return sb.toString();
글쎄, 당신은 이미 응답을 받고 있으며 요청이 정상이면 응답이 Javascript 경고에 표시됩니다. 이 경고를 HTML 페이지의 실제 디스플레이로 바꾸는 데 필요한 조작을 수행하십시오.
oReq.onreadystatechange = function() {
if (oReq.readyState == 4) {
if (oReq.status == 200) {
//This is where you should put the code (or function call) when everything went ok
}
if (oReq.status == 404) {
//this is when you got a 404 error
}
}
};
클라이언트 컴퓨터의 파일에 저장하려면 클라이언트가 저장할 수있는 것보다 서버 측 코드에서 파일 스트림을 다시 보내야합니다 (예 : 파일 다운로드).하지만 내가 아는 한 전체 AJAX에서는 할 수 없으며이를 수행하려면 일반 http 요청이 필요합니다. 또한 AJAX 코드에서 오류 처리의 큰 부분을 놓친다는 점에 유의하세요 ... 404 오류 외에 요청이 실패 할 수있는 방법은 여러 가지가 있습니다. 실제로이 모든 것을 설정하는 사람이므로 404 오류는 아마도 일어날 가능성이 가장 적습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다