Ответ Ajax содержит больше, чем ожидалось - PullRequest
1 голос
/ 12 декабря 2011

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 в каталог модулей?

Моя настоящая проблема немного сложнее, но в ней коренится та же проблема, что я описал здесь. Так что получение времени - это не моя проблема, а лишь иллюстрация, иллюстрирующая мою проблему.

...