온라인 XML 파일에서 데이터를 가져오고 싶습니다. http://data.one.gov.hk/others/td/speedmap.xml. 자바 스크립트를 로컬에서 (서블릿없이) 호출하면 작동합니다. 그러나 jsp 및 java 서블릿을 통해 호출하면 작동하지 않습니다. 온라인 xml 파일에서 데이터를 가져올 수있는 다른 방법이 있습니까?자바/자바 스크립트 온라인 XML 파일
contentXML.jsp :
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<p>CONTENT_XML</p>
<%@ include file="source_file/js_workable.js" %>
<%@ include file="source_file/data_retrieve.js" %>
</body>
</html>
data_retrieve.js
<script LANGUAGE="JavaScript">
if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else { // code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
document.write(xmlhttp.status);
document.write(xmlhttp.readyState);
document.write(xmlhttp.statusText);
xmlhttp.open("GET","http://data.one.gov.hk/others/td/speedmap.xml",false);
xmlhttp.send();
xmlDoc=xmlhttp.responseXML;
document.write("<table border='1'>");
var x=xmlDoc.getElementsByTagName("jtis_speedmap");
for (i=0;i<x.length;i++){
document.write("<tr><td>");
document.write(x[i].getElementsByTagName("LINK_ID")[0].childNodes[0].nodeValue);
document.write("</td><td>");
document.write(x[i].getElementsByTagName("ROAD_TYPE")[0].childNodes[0].nodeValue);
document.write("</td></tr>");
}
document.write("</table>");
</script>
HTML 파일 :이 액세스 제어에 의해 차단 그래서
<html>
<body>
<script>
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET","http://data.one.gov.hk/others/td/speedmap.xml",false);
xmlhttp.send();
xmlDoc=xmlhttp.responseXML;
document.write("<table border='1'>");
var x=xmlDoc.getElementsByTagName("jtis_speedmap");
for (i=0;i<x.length;i++)
{
document.write("<tr><td>");
document.write(x[i].getElementsByTagName("LINK_ID")[0].childNodes[0].nodeValue);
document.write("</td><td>");
document.write(x[i].getElementsByTagName("ROAD_TYPE")[0].childNodes[0].nodeValue);
document.write("</td></tr>");
}
document.write("</table>");
</script>
</body>
</html>
어디에서 실패합니까? XML을 읽거나 구문 분석 하시겠습니까? 원인을 더 잘 보려면 브라우저 콘솔에 로그를 추가하십시오. – asgs
정확히 작동하지 않는 것은 무엇입니까? 'js_workable.js'의 예외가있을 수 있습니까? JSP 페이지가 아닌 게재 된 HTML 페이지 만 게시 하시겠습니까? Btw,'LANGUAGE = "JavaScript"'는 더 이상 사용되지 않습니다. – Bergi
나는 지금 당장 그럴 이유가 없다. 나는 이것을 점검 할 것이다. BTW 너의 제안을 주셔서 감사합니다! – user1976340