gpt4 book ai didi

javascript - 有没有办法从 XMLHttpRequest 响应中获取参数?

转载 作者:行者123 更新时间:2023-11-28 04:54:16 27 4
gpt4 key购买 nike

假设我有兴趣检查通过 XMLHttpRequest 发送的参数。

例如,如果我发送了带有参数“option=1”的 POST 请愿书,我可以从响应中检索该请求吗?

我检查了方法和属性,但没有找到获取它的方法。

最佳答案

触发 XMLHTTPRequest 并在浏览器的 JS 控制台(对于 Chrome/Firefox 为 F12)中检查响应对象。

我相信数据不存在,至少我曾经更改过一个项目的 XMLHttpRequest open() 方法(当然,我可能太愚蠢了来找到它)。这样,当我向用户打印错误/向错误报告后端发送错误时,我的默认错误处理程序就知道原始 URL。

粗略的代码片段,从项目初始化代码中提取:

/**  
* Check XMLHttpRequest availability
*/
var ajax = null;
var proto = null;
if (window.XMLHttpRequest) {
ajax = new XMLHttpRequest ();
proto = XMLHttpRequest.prototype;
} else if (window.ActiveXObject) {
try {
ajax = new ActiveXObject("Msxml2.XMLHTTP.6.0");
proto = ActiveXObject("Msxml2.XMLHTTP.6.0").prototype;
} catch (e) { }
}

if (ajax == null) {
alert ("Can not create AJAX object. You need a more recent browser!");
return;
}

/**
* Update ajax prototype to store the URL (for better error handling)
*/
try {
var origOpen = proto.open;
proto.open = function (method, url) {
this._url = url;
return origOpen.apply (this, arguments);
}
} catch (e) {
console.log ("Can not patch XMLHttpRequest to store URL. Console output will omit them...");
}

您需要针对传递给 send() 函数的 POST 数据进行调整。 请注意,该方法可能是糟糕的风格,而我的 JS 风格可能更糟糕!

更好:但是您始终可以将 POST 数据直接传递给回调函数,而不将其存储在 XMLHTTPRequest 对象中:

var postData = "SomeStuff-Foobar123";
var ajax = new XMLHttpRequest (); //add magic for other browsers here
ajax.open ("POST", "ajax.php", true);
ajax.onreadystatechange = function () {
if (this.readyState != 4 || this.status != 200) {
console.log ("Not ready, yet...");
return 0;
}
//response is in this.responseText
//but you can still access the parent objects!
console.log ("Done with Code 200. POSTed data: " + postData);
}
ajax.send (postData);

关于javascript - 有没有办法从 XMLHttpRequest 响应中获取参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42675171/

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