Я пытаюсь получить некоторые данные с сервера с помощью JavaScript и XMLHttpRequest. Файл PHP работает каждый раз после обновления (F5), если я просматриваю его в браузере. PHP-файл вызывает функцию в DLL, используя метод «новый DOTNET». Функция просто простая, возвращающая строку (сообщение отправлено из «TestPHP.dll» версия 3).
Если я вызываю тот же PHP-файл, используя XMLHttpRequest (и javascript), он всегда работает в первый раз, но не во второй раз. Каждый второй раз я получаю «Обратный вызов ошибки» (работает трижды, пятое, …).
Каждый раз, когда запрос терпит неудачу, я получаю эту ошибку в журнале Apache:
[Sun Feb 09 01:22:51.203412 2014] [mpm_winnt:notice] [pid 4928:tid 400] AH00428: Parent: child process 7992 exited with status 3221225477 -- Restarting.
Ошибка в обработчике событий в JavaScript, о котором я мало что знаю. Он говорит, что это массив, но я вижу только «« Обратный вызов », никакого другого сообщения. По ошибке я вижу, что я никогда не получаю« ReadyState »2 и 3 (только 1 и 4). Когда он работает, у меня есть« ReadyState »1 -4.
Я использую WAMP с Apache 2.4.4 и PHP 5.4.12 на Win7 (64 бит).
У меня нет опыта использования PHP и .NET DLL, так что извините за любое плохое объяснение этой проблемы. Я нашел подобный пост, но ответа там нет.
Я не знаю, что делать или пытаться, поэтому любая помощь мне очень понравилась бы,
Благодаря!
Файл PHP
<?php header('Content-Type: text/html; charset=UTF-8'); $assembly_string = 'TestPHP, Version=1.0.0.0, Culture=neutral, PublicKeyToken=8e6ebad0ae1c1438'; $class_name = 'TestPHP.TestPHP'; $PHPAsm = new DOTNET($assembly_string, $class_name); $Result = $PHPAsm->Test(); echo $Result;
?>
Часть JavaScript
invocation.open("POST", PHPUrl + "?t=" + Math.random(), true); invocation.onreadystatechange = handler; invocation.addEventListener("error", function(e) { alert("Error callback" + objToString(e)); }, false); invocation.setRequestHeader("Content-Type", "text/plain; charset=UTF-8"); invocation.send(PostData);