gpt4 book ai didi

javascript fetch() 使用断点,但在正常运行时失败并出现 TypeError

转载 作者:行者123 更新时间:2023-12-05 06:21:14 27 4
gpt4 key购买 nike

我正在尝试从远程服务中获取 () 文本/纯数据。如果我在 promise “then”链中放置一个断点,则来自服务器的文本数据可用。没有断点,我得到一个 fetch() 异常。

我正在使用原型(prototype)设计模式(见下文)。当我如下所示在“then”链中放置一个断点时,成功检索了来自远程服务的数据。不打断点,执行catch(),报错:

TypeError: Failed to fetch

我完全被难住了,非常感谢任何帮助!

注意,服务器(一个 python 应用程序)发回 html,带有

self.send_header("Access-Control-Allow-Origin", "*")

此外,如果我使用 Ajax(FWIW,它可以工作)。不过,我想让它与 fetch() 一起使用。

function Fetch(Msg) {
// Msg contains some info on how to construct the JSON message to transmit -- not relevant here.
this.help = `
The Fetch object specifies communication basics using
the fetch(...) mechanism.
`;
// some misc object vars...
}

Fetch.prototype = {
constructor: Fetch,

postData: async function (url = '', data = {}) {
const response = await fetch(url, {
method: 'POST,
mode: 'cors',
cache: 'no-cache',
credentials: 'same-origin',
headers: {
'Content-Type': 'text/plain',
},
redirect: 'follow',
referrerPolicy: 'no-referrer',
// body data type must match "Content-Type" header
body: JSON.stringify(data)
});
return await response.text(); //
},

handleErrorsInResponse: function (response) {
var debug = new Debug("Fetch.handleErrorsInResponse");
debug.entering();
debug.leaving();
},

handleReponse: function (response) {
var debug = new Debug("Fetch.handleResponse");
debug.entering();
console.log(response);
debug.leaving();
},

handleErrorsInFetch: function (response) {
var debug = new Debug("Fetch.handleErrorsInFetch");
debug.entering();
console.log(response);
debug.leaving();
},

call: function (payload) {
this.postData(
'http://some.url/',
payload)
.then(this.handleErrorsInResponse) // If I place a breakpoint here it works!
.then(this.handleReponse)
.catch(this.handleErrorsInFetch);
},
}

// Ultimately called by something like
comms = new Fetch();
someData = {"key": someJSON};
comms.call(someData);

最佳答案

取消对响应的等待。

替换

return await response.text();

return response.text();

关于javascript fetch() 使用断点,但在正常运行时失败并出现 TypeError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59950991/

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