簡體   English   中英

Ajax不會在readystatechange上觸發

[英]Ajax doesn't fire onreadystatechange

我知道該URL正在按預期方式工作,正如我將其記錄到控制台中一樣,很好。 但是,當readyState == 4和status == 200時,我無法獲得“好消息”登錄到控制台。我嘗試刪除readState,但仍然無法記錄。 我嘗試記錄狀態,並且只會以0值觸發一次。這是我第一次使用Ajax,因此可以提供任何幫助。

function setupRequest(){
  var bttn = document.querySelector('#send');

  bttn.addEventListener('click', sendData)
}

setupRequest();

function sendData () {

console.log('ran')
  var url = 'localhost/bev/drinks.php';

  var data = document.getElementById('input').value;
  url += '?' + 'alcohol=' + data;

console.log(url)

 var request = new XMLHttpRequest();
 request.onreadystatechange = function () {
  if (this.readyState == 4 && this.status == 200) {
    console.log('good news')
            console.log(this.responseText)
        } else {
    console.log(this.status)
        }
    }

 request.open('GET', url, true);
 request.send;

  console.log('sent')

}

您需要實際調用send() 每當您說出request.send;時,您什么也不做request.send;

 function setupRequest() { var bttn = document.querySelector('#send'); bttn.addEventListener('click', sendData) } setupRequest(); function sendData() { console.log('ran') var url = 'https://jsonplaceholder.typicode.com/posts'; var data = document.getElementById('input').value; //url += '?' + 'alcohol=' + data; console.log(url) var request = new XMLHttpRequest(); request.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { console.log('good news') console.log(this.responseText) } else { console.log(this.status) } } request.open('GET', url, true); // You wrote (without parentheses): /////////////////// // request.send; // /////////////////// // You need to write request.send(); console.log('sent') } 
 <button type="button" id="send">Btn</button> <input type="text" id="input"> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM