gpt4 book ai didi

javascript - 如何查询XMLHttpRequest的方法类型?

转载 作者:行者123 更新时间:2023-12-02 15:22:58 24 4
gpt4 key购买 nike

给定一个 XMLHttpRequest,我如何发现它的请求方法?这对于回调获取有关原始调用的上下文很有用。

xhr = new XMLHttpRequest()
xhr.open('post', 'http://example.com', true)
xhr.??? // should return 'post'

最佳答案

不幸的是,没有标准属性可以告诉您请求的类型。 MDN reference | spec reference

<小时/>

有几个选项可供选择:

  1. 给自己一个包装

  2. 包装 XMLHttpRequest 本身并添加 Expando 属性,但在目标浏览器上测试测试

#1 示例:

function xhr(method, url, done) {
var x = {
method: method,
xhr: new HTMLHttpRequest()
};
x.method = method;
x.xhr.onreadystatechange = function() {
if (x.xhr.readyState == 4) {
done(x, x.xhr.status == 200 ? x.xhr.responseText : null);
}
};
x.xhr.open(method, url);
return x;
}

(或者做一个返回 promise 的版本。)

#2 的示例(但是测试测试):

(function() {
var real = XMLHttpRequest;

XMLHttpRequest = function() {
var rv = new real();
rv.open = function(method) {
rv.method = method;
return rv.apply(this, arguments);
};
return rv; // Overrides the standard result of new XMLHttpRequest
};
})();

我不建议这样做。 :-) 包装器在跨浏览器上更加灵活和可靠。

关于javascript - 如何查询XMLHttpRequest的方法类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33894184/

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