У меня есть небольшой сервер C, который всегда отвечает одинаково:
"HTTP/1.1 200 OK\r\nServer: CServer\r\nAccess-Control-Allow-Headers: x-requested-with \r\nContent-Type: text/html\r\nContent-Length: 14\r\nConnection: close\r\n\r\n<h1>Done</h1>\n";
Теперь я могу вызвать веб-сервер с помощью своего браузера и получить ожидаемый результат, однако то же самое не работает с AJAX.
Запрос отправляется, и я также получаю ответ с Response-Payload:
Но выполняется функция ошибки: alert ("Произошла ошибка:" + xhr.status + "" + xhr.statusText); с xhr.status = 0 и xhr.statusText = error, что мне не очень помогает.
Мой ответ-пакет неверен? Что мне нужно изменить?
<!DOCTYPE html>
<html>
<head>
<script src = "https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("#button").click(function(){
$.ajax({
type: "GET",
dataType : 'html',
url: "http://localhost:8080/demotest.txt",
success: function(result){
$("#div1").html(result);
},
error: function(xhr){
alert("An error occured: " + xhr.status + " " + xhr.statusText);
console.info(xhr);
}
});
});
});
</script>
</head>
<body>
<div id = "div1"><h2>Before</h2></div>
<button id = "button">Get Content</button>
</body>
</html>
Что происходит, когда вы запускаете этот код? Используйте инструменты разработчика в вашем браузере. Посмотрите на консоль, чтобы увидеть, есть ли ошибки. Взгляните на вкладку «Сеть», чтобы увидеть, сделан ли запрос, отформатирован ли он так, как вы ожидаете, и получил ли ожидаемый ответ.
Похоже, у вас есть две проблемы: первая - это опечатка (которая должна вас выделить при проверке вкладки «Сеть»), а вторая - дубликат это.
Извините. Я изменил свой вопрос. Ответ виден в моих инструментах разработчика браузера, а также "Access-Control-Allow-Headers: *" в моем ответе не помогает.
Посмотрите в консоли инструментов разработчика браузера. Что говорится в сообщении об ошибке?





Пожалуйста, возьмите тур и выучите как задать хороший вопрос. «Не работает» - нечеткая постановка проблемы.