die*_*pjy 6 javascript cors axios
我正在向我的本地Web服务发出GET请求,我希望返回302响应,并在标题中包含一个位置.但是,我得到一个未定义的响应和网络错误,即使我可以在本地看到正在提供请求并且正在创建响应而Web服务中没有任何错误.
我在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]
Run Code Online (Sandbox Code Playgroud)
当我使用Postman时,位置出现在标题中
我使用Axios和配置进行的请求是
const config = {
url: [someURL],
method: 'GET',
headers: {
'customHeader':'token',
},
params: {
[params]
},
maxRedirects: 0,
validateStatus: status => (status >= 200 && status < 300) || status === 302,
};
Run Code Online (Sandbox Code Playgroud)
任何帮助都会非常感激,为什么响应在到达我的JS代码时是未定义的,但在Postman和Chrome中工作正常.
我可以解决这个问题的方法是使用HTTP状态代码200并获取位置标头以重定向,但我想避免这种情况,因为它在技术上是一个重定向响应.
\'customHeader\':\'token\'您的请求部分会触发您的浏览器首先发送 CORS 预检 OPTIONS 请求。除了定义为CORS 安全列表请求标头的标头之外,您添加到请求的任何标头都会触发浏览器发送 CORS 预检 OPTIONS 请求。
您不从 Postman 获取此信息的原因是,与浏览器引擎不同,Postman 不实现 CORS,因此它不发送 OPTIONS 请求。(Postman 并不在浏览器为 Web 应用程序强制执行的同源 Web 安全模型下运行。)
\n\n如果服务器没有以正确的方式响应 CORS 预检选项请求,您的请求将失败,唯一的解决方法是不将该\'customHeader\':\'token\'部分添加到您的请求中,或者以任何触发您的请求的方式构建您的请求。浏览器进行 CORS 预检。
| 归档时间: |
|
| 查看次数: |
1361 次 |
| 最近记录: |