Filestructure
JS / scripts.js
библиотека / libary.php
модули / page.php
модуль упругости / 404.php
index.php
Объяснение файлов
index.php ищет путь к URL-адресу пути и запрашивает этот файл. Таким образом, для www.test.com/page потребуются модули / page.php. Какой-то код:
$file = (DIR . 'modules/'.$action.'.php');
if(!file_exists($file))
{
$file = DIR . 'modules/404.php';
}
//Get file
require($file);
Тело page.php выглядит так:
<input type='submit' value='getTime' onClick='getTime()' />
Функция JS выглядит следующим образом:
function updateStatus()
{
if (window.XMLHttpRequest) {
xmlhttp=new XMLHttpRequest();
} else {
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
document.getElementById("content").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("POST","library/library.php",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("status=page");
}
И файл библиотеки содержит что-то вроде этого:
return time();
Проблема
Проблема в том, что reponseText содержит не только время, но и страницу 404.php. Это из-за моего index.php. Он ищет файл modules / library.php, и он не существует (не в директории de modules).
Итак, мой вопрос, каков путь ajax-запроса и ответа? И как мне решить эту проблему, не помещая файл library.php в каталог модулей?
Моя настоящая проблема немного сложнее, но в ней коренится та же проблема, что я описал здесь. Так что получение времени - это не моя проблема, а лишь иллюстрация, иллюстрирующая мою проблему.