웹 주소의 존재 여부 확인 방법으로는 여러가지가 있겠으나
웹 서버로 HEAD 만을 요청함으로써 전송 데이터를 최소화 할 수 있다.
다음은 XMLHttpRequest 오브젝트를 이용한 자바스크립에서의 사용 예제이다.
<html>
<head>
<title>웹주소 존재 확인</title>
<script language="JavaScript">
// XMLHttpRequest 객체 생성
function newXMLHttpRequest()
{
var xmlReq = false;
if(window.XMLHttpRequest)
{
xmlReq = new XMLHttpRequest();
}
else if(window.ActiveXObject)
{
try
{
xmlReq = new ActiveXObject("Msxml2.XMLHTTP");
} catch(e1)
{
try
{
xmlReq = new ActiveXObject("Microsoft.XMLHTTP");
}
catch(e2)
{
}
}
}
return xmlReq;
}
function ConfirmURL(URL)
{
if (URL == "")
{
alert("URL 주소를 입력하세요.");
return;
}
REQ = null;
REQ = newXMLHttpRequest();
// 헤더 요청 결과에 따른 처리 함수
REQ.onreadystatechange = processReqChange;
// 웹서버로 헤더만 요청함으로써 전송 데이터 최소화
REQ.open("HEAD", URL, true);
REQ.send(null);
return true;
}
function processReqChange()
{
if(REQ.readyState == 4)
{ // Complete : 모든 데이터가 전송. responseBody나 responseText를 사용한 모든 데이터 전송 완료
if(REQ.status == 200)
{
// 정상적으로 헤더를 받으면 OK
alert( "존재하는 URL 입니다.");
return;
}
else
{
alert( "존재하지 않는 URL 입니다. state=" + REQ.status);
return;
}
}
}
</script>
</head>
<body>
<input type="text" name="URL" value="<A href='http://www.korea.com"><br'>http://www.korea.com"><br</A>>
<input type="button" value="URL 존재 확인" onclick="ConfirmURL(document.all.URL.value)">
</body>
</html>
<head>
<title>웹주소 존재 확인</title>
<script language="JavaScript">
// XMLHttpRequest 객체 생성
function newXMLHttpRequest()
{
var xmlReq = false;
if(window.XMLHttpRequest)
{
xmlReq = new XMLHttpRequest();
}
else if(window.ActiveXObject)
{
try
{
xmlReq = new ActiveXObject("Msxml2.XMLHTTP");
} catch(e1)
{
try
{
xmlReq = new ActiveXObject("Microsoft.XMLHTTP");
}
catch(e2)
{
}
}
}
return xmlReq;
}
function ConfirmURL(URL)
{
if (URL == "")
{
alert("URL 주소를 입력하세요.");
return;
}
REQ = null;
REQ = newXMLHttpRequest();
// 헤더 요청 결과에 따른 처리 함수
REQ.onreadystatechange = processReqChange;
// 웹서버로 헤더만 요청함으로써 전송 데이터 최소화
REQ.open("HEAD", URL, true);
REQ.send(null);
return true;
}
function processReqChange()
{
if(REQ.readyState == 4)
{ // Complete : 모든 데이터가 전송. responseBody나 responseText를 사용한 모든 데이터 전송 완료
if(REQ.status == 200)
{
// 정상적으로 헤더를 받으면 OK
alert( "존재하는 URL 입니다.");
return;
}
else
{
alert( "존재하지 않는 URL 입니다. state=" + REQ.status);
return;
}
}
}
</script>
</head>
<body>
<input type="text" name="URL" value="<A href='http://www.korea.com"><br'>http://www.korea.com"><br</A>>
<input type="button" value="URL 존재 확인" onclick="ConfirmURL(document.all.URL.value)">
</body>
</html>
댓글을 달아 주세요
쩝... 이건 로컬피씨에서 실행 할 때만 된단다.
XMLHTTPRequest로 작업 할 때 외부주소로 접근하면 권한 오류 발생.
그래서 ASP로 변경해야하는데,,
XMLHTTPRequest는 Single User Base라 ASP에서는 ServerXMLHTTP를 사용하라네..
암튼,, 수정해서 다시 올려야겠다.