Я только начинаю изучать, как использовать XMLHttpRequest, и я начал с примера this из w3schools, который я хочу изменить, чтобы отправить строку. Это новый код:Отправьте строку через запрос http
<!DOCTYPE html>
<html>
<head>
<script>
function loadXMLDoc() {
var xmlhttp;
var str="sent string";
xmlhttp=new XMLHttpRequest();
xmlhttp.open("GET","ajax_info.txt",true);
xmlhttp.send(str);
alert(xmlhttp.responseText);
}
</script>
</head>
<body>
<div id="myDiv"><h2>Let AJAX change this text</h2></div>
<button type="button" onclick="loadXMLDoc()">Change Content</button>
</body>
</html>
Я хочу вывести ответ и посмотреть, была ли строка отправлена, но предупреждение ничего не возвращает. Просто пустое окно. Что я делаю не так?
Кроме того, я нашел пример в этом question, который также добавляет эти строки кода:
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http.setRequestHeader("Content-length", params.length);
http.setRequestHeader("Connection", "close");
Всегда ли они необходимы? Если да, то почему? Код с этой страницы также отправляет строку, но этот код тоже не работает для меня.
EDIT: Это мой обновленный код, который по-прежнему не работает. Я даже пробовал его, не отправляя строку, но ничего не происходит. Я не пытаюсь его больше в w3wschools, но вместо того, чтобы в нужном месте, у меня нет моего кода в функции больше и сделаны изменения, которые @Quentin рассказал мне о:
<script>
var xmlhttp=null;
var str="sent_string";
xmlhttp=new XMLHttpRequest();
xmlhttp.open("POST","http://192.168.1.3:80",true);
xmlhttp.setRequestHeader("Content-type", "text/plain");
xmlhttp.setRequestHeader("Content-length", str.length);
xmlhttp.setRequestHeader("Connection", "close");
xmlhttp.send(str);
xmlhttp.addEventListener('load', function() {
alert(this.responseText);
alert(xmlhttp.readyState);}
);
</script>
Не используйте w3schools, как никогда. В ответ на ваш вопрос использование необработанного XmlHttpRequest почти никогда не является хорошей идеей. Проверьте jQuery и друзей, которые обеспечивают простой интерфейс по поводу сложностей: http://api.jquery.com/jQuery.ajax/ – jjm