hta - ajax-вызов php-скрипта на веб-сервере
Я думаю о написании настольной HTA-программы.
Однако при запуске мне нужно будет сделать 1 вызов базы данных ajax php на веб-сайт, что потребует обратного вызова элемента success.
Это возможно? Нужно ли мне преодолевать какие-либо проблемы с другими пользователями? Будут ли брандмауэры вызывать проблемы?
1 ответ
Возможно - да. Смотрите код ниже. Crossbrowser не применим в HTA - вы всегда используете движок рендеринга IE. Но я думаю, что вы можете иметь в виду междоменные проблемы, которые также не применимы в HTA. 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>