2012-05-16 1 views
2

Я подумываю написать программу HTA для настольных компьютеров.hta - ajax вызов php-скрипта на веб-сервере

Однако при запуске мне нужно будет сделать 1 вызов ajax php database на веб-сайт, для которого потребуется обратный вызов элемента успеха.

Возможно ли это? Нужно ли мне преодолевать любые проблемы с кроссбраузерами? Возникли бы проблемы с брандмауэром?

ответ

2

Возможно - да. См. Код ниже. Crossbrowser не применим в HTA - вы всегда используете движок рендеринга IE. Но я думаю, что вы можете подразумевать междоменные проблемы, которые также не применимы в ОМТ. Microsoft решила отключить всю междоменную защиту Javascript, поскольку HTA (HTML-приложение) рассматривается как приложение, а не веб-страница.

Существует множество соображений для брандмауэров, но маловероятно, что брандмауэр блокирует HTA AJAX более строгие вызовы, чем HTML 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> 
Смежные вопросы