gpt4 book ai didi

javascript - 获取 API 和 Cordova

转载 作者:数据小太阳 更新时间:2023-10-29 04:20:24 26 4
gpt4 key购买 nike

我在同时使用 Cordova 和 fetch API 时遇到问题。我正在执行以下代码

fetch(BASE_URL + '/auth/login', {
method: 'post',
credentials: 'include',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/x-www-form-urlencoded'
},
body: transformRequest({username: email, password: password})
}).then(response => {
console.log(response.headers.get('X-AuthToken'))
});

当代码在浏览器中执行时,“X-AuthToken” header 被正确检索和记录。当我在 Cordova 应用程序中打包时运行相同的代码时,“X-AuthToken” header 为空。此外,奇怪的是,在检查响应服务器端和在网络上嗅探时,我可以完美地看到 header 集,所以我完全确定 header 在那里(只是它不是由获取 API 返回的);事实上,当使用等效的 XMLHttpRqeuest 时, header 已正确设置:

var xhttp = new XMLHttpRequest();
xhttp.open("POST", BASE_URL + /api/auth/login", true);
xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhttp.send("username=username&password=password");
xhttp.onreadystatechange = function() {
if (xhttp.readyState == 4 && xhttp.status == 200) {
console.log (xhttp.getResponseHeader('X-AuthToken'));
}
}

值得一提的是,当我尝试转储其他常见 header (如 pragma、缓存控制等)时,它们会被正确记录。它看起来像 fetch API 正在过滤 header 并删除不标准的 header 。其他人遇到同样的问题吗?我错过了什么吗?

最佳答案

很好地提出问题,您正在发展前沿。我现在会坚持使用 XMLHTTPRequest。获取 api 在 webkit 中未正确实现。参见 webkit bugzilla bug 151937

关于javascript - 获取 API 和 Cordova,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35556741/

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