Я учился использовать AJAX с запросом GET, который позволяет мне получить доступ к скрипту PHP с массивом данных на сервере. Я хочу иметь возможность отправить запрос, который сообщает серверу, что он запускает код, который откроет приложение и будет обрабатывать некоторую информацию об этом приложении.Как использовать AJAX для связи и запуска кода на сервере?
Вот код, который я использую для первой связи с сервером, затем отправьте запрос на сервер и, наконец, обработайте ответы с сервера.
var xmlHttp = createXmlHttpRequestObject();
function createXmlHttpRequestObject(){
var xmlHttp;
if(window.ActiveXObject)
{
try
{
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
catch(e)
{
xmlHttp = false;
}
}
else
{
try
{
xmlHttp = new XMLHttpRequest();
}
catch(e)
{
xmlHttp = false;
}
}
if(!xmlHttp)
{
alert("cant create that object hoss");
}
else
{
return xmlHttp;
}
}
function process(){
if(xmlHttp.readyState == 0 || xmlHttp.readyState == 4) //State were object is free and ready to communicate with server
{
food = 'bacon';
xmlHttp.open("GET", "ExecuteMaya.php?food="+food,true); //Creates request that we are sending to server
xmlHttp.onreadystatechange = handleServerResponse;
xmlHttp.send(null);
}
else
{
setTimeout('process()', 1000);
}
}
function handleServerResponse(){
if(xmlHttp.readyState == 4)
{
if(xmlHttp.status == 200) //Means communication was successful
{
var xmlResponse = xmlHttp.responseText;
var xmldom = (new DOMParser()).parseFromString(xmlResponse, 'text/xml');
var text = xmldom.getElementsByTagName("response")[0];
var message = text.childNodes[0].nodeValue;
foodTextOutput = message;
setTimeout('process()', 1000);
}
else
{
alert('Something went wrong!');
}
}
}
Вот PHP, который я использовал, когда я учился использовать AJAX. Я получил следующую ошибку, когда напечатал переменную «xmldom» из приведенного выше кода на консоль и проверил ее - «ошибка в строке 2 в столбце 1: дополнительный контент в конце документа». Это может быть другой вопрос к моему оригинальному сообщению, но я подумал, что я бы сказал, что эта ошибка произошла. Затем это вызвало эффект нажатия для строки 'var message = text.childNodes [0] .nodeValue;' который вызвал ошибку - «Uncaught TypeError: невозможно прочитать свойство« childNodes »неопределенного».
<?php
header('Content-Type: text/xml');
echo '<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>':
echo '<response>';
$food = $_GET['food'];
$foodArray = array('tuna','bacon','beef','loaf','ham');
if(in_array($food, $foodArray))
echo 'We do have '.$food.'!';
elseif($food == '')
echo 'Enter a food you idiot';
else
echo 'Sorry punk we dont sell no '.$food.'!';
echo '</response>';
?>
Код, который я работаю с AJAX, чтобы узнать, не может быть уместным, я просто думал, что я отправлю его в случае, если я могу использовать часть этого кода, который уже написан.
Подводя итог, я хочу, чтобы иметь возможность отправлять логическое или любое другое, что является жизнеспособным с AJAX, серверу, который сообщает ему, что он запускает скрипт. Затем этот скрипт откроет приложение Maya и запустит код Python, который я написал.
Спасибо заранее!
так - в чем вопрос, где проблема? – Jeff
@Jeff Я не уверен, как общаться с сервером таким образом, что я могу сказать, что он запускает код. Также, если кто-то может сказать мне, почему произошли ошибки, о которых я говорил. Благодарю. – skelto
, как только вы вызываете php-скрипт через ajax (как вы уже делали), он запускает код! – Jeff