gpt4 book ai didi

javascript - XMLHttpRequest onload() 函数未传递 XMLHttpRequest 对象

转载 作者:可可西里 更新时间:2023-11-01 17:04:21 30 4
gpt4 key购买 nike

<分区>

我有一个函数可以向我的服务器发送一个简单的 AJAX 请求。浏览器的 javascript 代码如下所示:

function testRequest() {

var xhr = new XMLHttpRequest();
xhr.onload = () => {

console.log("RESPONSE RECIEVED");
console.log(this); // 'this' should be a XMLHttpRequest object
console.log(this.status);
console.log(this.responseText);
};

xhr.open('POST', `http://server_ip/test`, true);
xhr.send();
}

服务器代码如下所示 (Express.js):

app.post("/test", (req, res) => { 

res.setHeader("Access-Control-Allow-Origin", "*");
res.status(200).send("testing");
});

调用该函数时,我在浏览器控制台上得到的响应是这样的:

RESPONSE RECIEVED
Window {postMessage: ƒ, blur: ƒ, focus: ƒ, close: ƒ, parent: Window, …}

undefined

而不是预期的:

RESPONSE RECIEVED
XMLHttpRequest {…}
200
"testing"

换句话说,浏览器正在接收服务器响应,但是传递给 onload 函数的对象 (this) 似乎是某个“Window”对象而不是 XMLHttpRequest 对象。因此,没有状态或响应文本变量。

在浏览器中检查请求时,响应的主体确实是预期的“测试”。

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