늙 을 때 까지 배 워 서 AJAX 크로스 도 메 인(3)
실제로 사용 해 보 니 두 가지 문제 가 있 었 습 니 다.델 피 를 해 왔 습 니 다.ASP 가 많 지 않 은 저 를 만 나 는 것 은 문제 가 많 았 습 니 다.
첫 번 째 질문:
VBS 의 변 수 는 JS 에 전 달 됩 니 다...공 부 를 통 해 아주 간단 하 다 는 것 을 알 게 되 었 습 니 다...
먼저 나의 대체적인 실현 방법 을 살 펴 보 자.
<%
dim sSrv1Link
sSrv1Link = "http://www.XXX.org/test1.asp?U=TESTUSER&M=111&E=222"
%>
<script type="text/javascript">
function synSvrData(str)
{
var xmlhttp;
if (str.length==0)
{
document.getElementById("txtHint").innerHTML="";
return;
}
//
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
// ONREADYSTATECHANGE ,
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET",str,true);
xmlhttp.send();
}
</script>
위의 코드 는 AJAX 로 ASP 를 방문 하고 결 과 를 되 돌려 주 겠 다 는 뜻 이다.
<script type="text/javascript">
var jsSvr='<%=sSrv1Link%>';
synSvrData(jsSvr)
</script>
봤 어?이것 이 관건 이다.
var jsSvr='<%=sSrv1Link%>';
js 는 VBS 변 수 를 사용 하 는데 왜 그래 야 합 니까?암호 화 문자열 은 모두 VBS 에서 생 성 된 것 이기 때문이다.로 컬 테스트 OK,현재 접근 파일 을 다른 서버 의...
sSrv1Link = "http://www.XXX2.org/test1.asp?U=TESTUSER&M=111&E=222"
다 역!!!
이때 문제 가 생 겼 어 요...코드 가 실 행 된 후 되 돌아 오지 않 았 습 니 다.나중에 되 돌아 오지 않 는 것 이 아니 라 XXx2 서버 가 응답 하지 않 는 것 입 니 다!
문제 가 test 1.asp 파일 에 나타 난 것 을 발 견 했 습 니 다!!맞다!잘못 본 거 아니 야!
도 메 인 간 요청 은 말 그대로 한 사이트 의 자원 이 다른 도 메 인 이름 사이트 의 자원 을 방문 하 는 것 입 니 다.
아래 양 끝 발췌:
웹 2.0 과 SNS 가 유행 하면 서 웹 애플 리 케 이 션 이 도 메 인 방문 에 대한 수요 도 점점 많아 졌 다.그러나 스 크 립 트 에서 도 메 인 간 요청 을 하 는 것 은 안전성 에 제한 을 받 기 때문에 웹 개발 자 들 은 더욱 안전 하고 편리 한 도 메 인 간 요청 방식 으로 자신의 웹 응용 을 융합 시 켜 야 한다.이렇게 하 는 장점 중 하 나 는 요청 을 서로 다른 서버 에 분담 하여 하나의 서버 압력 을 줄 여 응답 속 도 를 높 일 수 있다 는 것 이다.또 다른 장점 은 서로 다른 업무 논 리 를 서로 다른 서버 에 분포 시 켜 부 하 를 낮 출 수 있다 는 것 이다.
다행 인 것 은 크로스 오 버 요청 기준 이 나 왔 고 주류 브 라 우 저 도 이 기준 을 실현 했다 는 점 이다.W3C 작업 그룹의 웹 응용 프로그램 Working Group(웹 응용 작업 그룹)은 크로스-Origin 리 소스 공유(크로스 도 메 인 자원 공유,이 규범 주 소 를 발 표 했 습 니 다.http://www.w3.org/TR/access-control/화해시키다http://dev.w3.org/2006/waf/access-control/)범위 내 요청 문 제 를 해결 하기 위해 규범 을 추천 합 니 다.이 규범 은 더욱 안전 한 크로스 필드 데이터 교환 방법 을 제공 했다.구체 적 으로 규범 화 된 소 개 는 위 에서 제공 한 사이트 주 소 를 방문 할 수 있다.주의해 야 할 것 은 이 규범 은 XML Httprequest 와 같은 API 용기 에 만 적 용 됩 니 다.IE8,Firefox 3.5 와 그 이후 버 전,Chrome 브 라 우 저,Safari 4 등 은 크로스-Origin Resource Sharing 규범 을 실현 하여 크로스 도 메 인 요청 을 할 수 있 습 니 다.Cross-Origin Resource Sharing 의 작업 방식 은 HTTP 헤드 를 추가 하 는 방법 으로 웹 브 라 우 저가 이 도 메 인 이름 의 정보 에 접근 할 수 있 는 자원 을 판단 하 는 것 입 니 다.그러나 HTTP 요청 으로 인해 사용자 데이터 가 부작용 을 일 으 키 는 요청 방법(특히 GET,일부 MIME 형식의 POST 를 제외 한 HTTP 방법)에 대해 서 는 브 라 우 저 에 요청 에 대해'사전 검증'을 요구 하고 HTTP 를 보 낸 OPTIONS 요청 헤드 를 통 해 서버 에 어떤 지원 방법 이 있 는 지 물 어보 고 서버 의 동 의 를 구 한 후실제 HTTP 요청 방법 으로 실제 요청 을 보 냅 니 다.서버 도 클 라 이언 트 에 게 인증 정보(예 를 들 어 Cookie 와 HTTP Authentication 데이터)를 요청 과 함께 보 내야 하 는 지 알려 줄 수 있다.
이렇게 많아
일단 저희 가 테스트 용 으로 쓰 던 원래 의 test1.asp 를 보 겠 습 니 다.
<%
sUser=request.QueryString("U")
response.write("XXX.org: " & sUser)
%>
다음 도 메 인 접근 추가:
<%
response.AddHeader "Access-Control-Allow-Origin", "http://www.XXX2.org"
sUser=request.QueryString("U")
response.write("XXX2.org: " & sUser)
%>
response.AddHeader "Access-Control-Allow-Origin", "http://www.XXX2.org"참,이 한 마디 로 도 메 인 을 뛰 어 넘 었 어.다시 테스트 해 봐.OK 아니 야?"
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Javascript Ajax에 대한 간단한 연습저는 약 4년 동안 프로그래밍 개인 튜터로 일한 경험이 있습니다. 약 5년 전에 " "이라는 제목의 페르시아어로 내 웹사이트에 블로그 게시물을 올렸고 사람들이 저에게 전화하기 시작했습니다. 나는 항상 사람들을 가르치...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.