gpt4 book ai didi

javascript - 302响应错误

转载 作者:数据小太阳 更新时间:2023-10-29 05:31:55 25 4
gpt4 key购买 nike

我正在向我的本地网络服务发出 GET 请求,我希望返回 302 响应并在 header 中包含一个位置。但是,我得到了一个未定义的响应和一个网络错误,即使我可以在本地看到正在处理请求并且正在创建响应而网络服务中没有任何错误。

我在 Postman 和 Chrome 中试过,它收到重定向响应并相应地重定向。

我不确定这是否是 CORS 问题,如果是,我该如何解决?

我已经在 CORS 过滤器的响应头中添加了

Access-Control-Expose-Headers: Location, [own headers]
Access-Control-Allow-Origin: '*'
Access-Control-Allow-Methods: POST, PUT, GET, OPTIONS, DELETE
Access-Control-Max-Age: [some age]
Access-Control-Allow-Headers: [own headers]

当我使用 Postman 时,位置出现在标题中

我使用 Axios 发出的请求和配置是

const config = {
url: [someURL],
method: 'GET',
headers: {
'customHeader':'token',
},
params: {
[params]
},
maxRedirects: 0,
validateStatus: status => (status >= 200 && status < 300) || status === 302,
};

对于为什么响应在到达我的 JS 代码时未定义,但在 Postman 和 Chrome 中运行良好,我们将不胜感激。

我可以解决这个问题的一种方法是使用 HTTP 状态代码 200 并获取要重定向的位置 header ,但我想避免这种情况,因为它在技术上是一种重定向响应。

最佳答案

请求的 'customHeader':'token' 部分 triggers your browser to first send a CORS preflight OPTIONS request . 任何 您添加到请求的 header ,而不是定义为 CORS-safelisted request-headers 的 header 触发浏览器发送 CORS 预检选项请求。

你没有从 Postman 得到这个的原因是与浏览器引擎不同,Postman 没有实现 CORS,所以它不会发送 OPTIONS 请求。 (Postman 不在浏览器为 Web 应用程序强制执行的同源 Web 安全模型下运行。)

如果服务器没有以正确的方式响应 CORS 预检选项请求,您的请求将失败,唯一的解决方法是不要将 'customHeader':'token' 部分添加到您的请求,或以任何方式构建您的请求,触发您的浏览器进行 CORS 预检。

关于javascript - 302响应错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41858010/

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