2012-05-16 3 views
2

저는 데스크톱 HTA 프로그램을 작성하려고합니다.hta-ajax 웹 서버에서 PHP 스크립트를 호출합니다.

그러나 시작시 웹 사이트에 1 개의 아약스 PHP 데이터베이스 호출을 만들어야 성공 요소 콜백이 필요합니다.

이것이 가능합니까? 크로스 브라우저 문제를 극복해야합니까? 방화벽으로 인해 문제가 발생합니까?

답변

2

가능 가능. 아래 코드를 참조하십시오. Crossbrowser는 HTA에는 적용되지 않습니다. 항상 IE 렌더링 엔진을 사용하고 있습니다. 하지만 당신은 HTA에 적용 할 수없는 도메인 간 문제를 의미 할 수도 있습니다. Microsoft는 HTA (HTML 응용 프로그램)가 웹 페이지가 아닌 응용 프로그램으로 처리되기 때문에 모든 Javascript 크로스 도메인 보호를 사용하지 않도록 선택했습니다.

방화벽에는 많은 고려 사항이 있지만 방화벽이 HTML AJAX보다 더 제한적으로 HTA AJAX 호출을 차단하지는 않습니다. PHP 페이지를 호출하는 웹 페이지가 있으면 HTA에서도 작동 할 것입니다. 행운을 빕니다!

<html><head> 
<script language="javascript" type="text/javascript"> 
var XHR = new ActiveXObject("Msxml2.XMLHTTP"); 
function callAjax(url){ 
    XHR.onreadystatechange=(callback); 
    txtStatus.value += "opening: " + url + "\n"; 
    XHR.open("GET",url,true); //"POST" also works 
    XHR.send(); // XHR.send("name1=value1&name2=value2"); 
} 

function callback(){ 
    if(XHR.readystate == 4) txtStatus.value += "DONE\n" + XHR.responseText; 
} 
</script> 
</head> 
<body onload="callAjax(txtURL.value)"> 
    <textarea id=txtURL style="width:100%" rows=1>http://www.google.com</textarea> 
    <textarea id=txtStatus style="width:100%" rows=20></textarea> 
</body></html> 
관련 문제