gpt4 book ai didi

javascript - 在javascript中构建一个简单的ajax类

转载 作者:行者123 更新时间:2023-11-30 08:08:22 25 4
gpt4 key购买 nike

我正在尝试为 chrome 扩展制作一个简单的 ajax 类。当我尝试运行代码时,出现未定义错误 Uncaught TypeError: Cannot read property 'readyState' of undefined。似乎是什么导致了这个问题?

function ajax(arguments, callback) {
this.xhr = new XMLHttpRequest();
this.xhr.open(arguments.requestType, arguments.requestUrl + arguments.requestParameters, true);
this.xhr.onreadystatechange = function() {
if (this.readyState === 4 && this.status === 200) {
requestedData = JSON.parse(this.responseText);
callback(requestedData);
}
}
this.xhr.send();
}

var ajaxRequest = new ajax({
requestType: 'GET',
requestUrl: 'http://ezswag.com/bots/terms.php',
requestParameters: ' ',
}, function(json) {
//console.log(json); => json {apple: "red", cheery: "red"}
return json;
});

console.log(ajaxRequest);

(已更新代码,并且可以正常工作)

最佳答案

this 的值取决于函数的调用方式。

当您将 ajax 函数作为构造函数调用时(请注意,约定说您应该以大写字母开头构造函数名称)this 是正在创建的实例。

readyState函数中,this是XMLHttpRequest对象。

readyState 函数中所有对 this.xhr 的引用都应该是 this

关于javascript - 在javascript中构建一个简单的ajax类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14158688/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com