将原型 Ajax POST 重建为“普通”js

我需要的是通过javascript重建prototype.js Ajax请求。(没有 jQuery / 没有获取)。需要 IE 支持(出于某些原因...)


new Ajax.Request(

urlVar,

{

  method: 'post',

  parameters: {elid: document.getElementById('element').selectedIndex},

  onCreate: function(){

    //do somethings

  },

  onComplete: fucnction (event){

    currentValues = eval('(' + event.responseText + ')');

    console.log(currentValues); // will give me an array with 3 objects

  }

});

我尝试过的是:


var xhr = new XMLHttpRequest();

xhr.open("POST", urlVar, true);

xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

xhr.onreadystatechange = function (event) {

   if (xhr.readyState == 4) {

      if (xhr.status == 200) {

         currentValues = eval('(' + event.responseText + ')');

         console.log(currentValues); // i see an error that "currentValues" is undefined

         //i can get 1 object if i will do eval('(' + THIS.responseText + ')');

         // but it still bugs me a lot..


         //other actions here

      }

      else if (xhr.status == 400) {

         console.log('ERROR')

      }

      else {

         console.log('something else other than 200 was returned');

      }

   }

}

xhr.send(document.getElementById('element').selectedIndex);

也许有人知道在这种情况下哪种结构会起作用。有什么方法可以通过 js 执行 onCreate / onComplete 吗?


慕娘9325324
浏览 125回答 1
1回答

梦里花落0921

使用this.responseText, xhr.responseText(与您已经访问.status和的方式相同.readyState)或event.target.responseText。在event不具有responseText本身。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript