Я новичок в AJAX и в настоящее время изучаю его Head First AJAX
, Проблема, с которой я сталкиваюсь, действительно странная. Я разработал простую программу, которая создает запрос через JavaScript, а затем показывает результат.
main.js
window.onload = initPage;
function initPage() {
request = createRequest();
if(request == null) {
alert("request could not be created");
}
else {
var url = "requestMe.php";
request.onreadystatechange = showResult;
request.open("GET", url, true);
request.send(null);
}
}
function showResult() {
if(request.readyState == 4) {
if(request.status == 200) {
if(request.responseText == "okay") {
alert("A successful request was returned");
}
else {
alert("ALERT : " + request.responseText);
}
}
else {
alert("Request status received was not correct");
}
}
}
//--function to create request objects--
function createRequest(){
try{
request = new XMLHttpRequest();
}
catch(tryMS){
try{
request = new ActiveXObject("Msxm12.XMLHTTP");
}
catch(otherMS){
try{
request = new ActiveXObject("Microsoft.XMLHTTP");
}
catch(failed){
request = null;
}
}
}
return request;
}
Теперь вот скрипт php.
requestMe.php
<?php
echo 'okay';
?>
Этот код должен дать предупреждение A successful request was returned
Но вместо этого это дает результат ALERT : okay
Странно то, что тот же самый код работал вчера для меня, когда я попробовал его, и теперь он дает мне этот результат. Я пытался создавать похожие программы, и все они показывают мне такое странное поведение. responseText
получил правильно, потому что он добавляет okay
после ALERT :
. Что я делаю не так в коде? Почему это идет к else
часть, когда responseText
получил правильно?
Любая помощь? Заранее спасибо.
Я лично сделал бы это, используя Функция jQuery Ajax следующим образом:
document.addEventListener("DOMContentLoaded", function()
{
$.ajax({
"url": "requestMe.php"}).done(function(data)
{
if(data == "okay")
{
alert("A successful request was returned");
} else
{
alert("ALERT : " + data);
}
}).fail(function()
{
alert("Connection Failed");
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
Сделать одну вещь добавить выход; после эхо «хорошо»;
Проблема в вашем коде после ?> есть свободное место, вы можете исправить это, удалив ?> или удаление дополнительного пространства после ?>.
Я надеюсь, что это исправит вашу проблему.