Я пытаюсь подключиться к серверу для входа в систему, но при отправке запроса на подтверждение состояние (statechange) остается в 1 (соединение установлено), а затем теряется.очевидно, onreadystatechange запускается только один раз, но я понятия не имею, почему и исследовал, но информация, которую я нашел, была не в моем случае.
var peticion
var net = {}
var strQuery
/* global XMLHttpRequest ActiveXObject */
window.onload = function () {
var btn = document.getElementById('comprobar')
btn.addEventListener('click', validate)
strQuery = 'login=' + encodeURIComponent(document.getElementById('login').value + '&nocache=' + Math.random())
}
function validate () {
peticion = new net.CargarContenidos('http://localhost/Paginas/AJAXTest/servidor/compruebaDisponibilidad.php', mostrar, strQuery)
}
function mostrar () {
console.log('si entro')
console.log(peticion.req.responseText)
}
net.READY_STATE_UNINITIALIZAED = 0
net.READY_STATE_LOADING = 1
net.READY_STATE_LOADED = 2
net.READY_STATE_INTERACTIVE = 3
net.READY_STATE_COMPLETE = 4
net.CargarContenidos = function (url, funcion, data, funcionError) {
this.url = url
this.req = null
this.onload = funcion
this.onerror = this.defaultError
this.cargaContenidosXML(url, data)
console.log('finish')
}
net.CargarContenidos.prototype = {
cargaContenidosXML: function (url, data) {
if (window.XMLHttpRequest) {
this.req = new XMLHttpRequest()
console.log(this.req)
} else if (window.ActiveXObject) {
this.req = new ActiveXObject('Microsoft.XMLHTTP')
}
if (this.req) {
try {
var loader = this
this.req.onreadystatechange = function () {
loader.onReadyState()
}
this.req.open('POST', url, true)
this.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded')
this.req.send(data)
} catch (err) {
alert('error: ' + err)
}
}
},
onReadyState: function () {
var req = this.req
var ready = req.readyState
console.log(ready)
if (ready == net.READY_STATE_COMPLETE) {
var httpStatus = req.status
if (httpStatus == 200 || httpStatus == 0) {
this.onload()
}
}
},
}
Я студент, и я был бы очень признателен за совет, заранее спасибо