В процессе работы над простым проектом (или, по крайней мере, я думал, что это просто), когда пользователь нажимает кнопку, и в приведенном выше текстовом поле появляется случайное высказывание, сгенерированное с помощью php. У меня нет доступа к файлу php, поэтому я не вижу код и чувствую себя немного потерянным. Проблема, с которой я верю, является ошибкой в том, как Im обрабатывает ответ с сервера (функция handleServerResponse). Любой совет будет принят во внимание.Обработка ответа сервера AJAX
В попытке отладки, я видел это сообщение: (я изменил URL)
XMLHttpRequest не может загрузить HTTP: somephp.php. Нет Заголовок «Access-Control-Allow-Origin» присутствует на запрошенном ресурсе . Поэтому исходный 'null' не допускается.
код до сих пор:
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("Error 1");
else
return xmlHttp;
}
$("#BtnReset").click(function() {
$("#TBSaying").val("");
})
$("#BtnGetSaying").click(function() {
process();
})
function process(){
if(xmlHttp.readyState==0 || xmlHttp.readyState==4){
xmlHttp.open("GET", "http://somephp.php", true);
xmlHttp.onreadystatechange = handleServerResponse;
xmlHttp.send(null);
}else{
setTimeout('process()', 1000);
}
}
function handleServerResponse(){
if(xmlHttp.readyState==4){
if(xmlHttp.status==200){
xmlResponse = xmlHttp.responseXML;
xmlDocumentElement = xmlResponse.documentElement;
message = xmlDocumentElement.firstChild.data
$("#TBSaying").val(message);
}else{
alert('error 2');
}
}
}
Прочитайте документацию JQuery и начал свежие, загрузив его на том же сервере, в котором PHP проживает и работает. вот окончательный код: Спасибо всем, что посоветовал!
$("#BtnReset").click(function() {
$("#TBSaying").val("");
})
$("#BtnGetSaying").click(function() {
process();
})
function process(){
// AJAX Code To Submit Form.
$.get("http://somephp.php",function(data){
$("#TBSaying").val(data);
});
}
Просьба описать более подробную информацию о том, с чем вы хотите помочь. Что именно вы наблюдаете (например, что происходит при запуске этого кода)? Что именно вам ожидают? Вы видели какие-либо ошибки в журнале отладки? Вы разместили инструкции 'console.log()' в своей функции ответа сервера, чтобы точно увидеть, какие данные там возвращаются? Предполагается, что перед отправкой вам будут предложены основные этапы отладки, чтобы вы могли описать, какие шаги вы уже предприняли, и где именно вы застряли. – jfriend00
Ваш вопрос, поскольку он стоит сейчас, не является чем-то, на что мы можем ответить (недостаточная информация). Требуется гораздо больше информации от вас. Без этой дополнительной информации этот вопрос необходимо будет закрыть. – jfriend00