为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕娘9325324 2021-12-23 19:37:42
我需要的是通过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 吗?
查看完整描述

1 回答

?
梦里花落0921

TA贡献1772条经验 获得超6个赞

使用this.responseTextxhr.responseText(与您已经访问.status和的方式相同.readyState)或event.target.responseText。在event不具有responseText本身。


查看完整回答
反对 回复 2021-12-23
  • 1 回答
  • 0 关注
  • 124 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信