首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >302响应误差

302响应误差
EN

Stack Overflow用户
提问于 2017-01-25 17:34:33
回答 1查看 4.4K关注 0票数 7

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

我尝试过在邮递员和Chrome,它收到重定向响应和相应的重定向。

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

我已经为CORS过滤器添加了响应头

代码语言:javascript
复制
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]

当我使用邮递员时,这个位置就在标题中。

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

代码语言:javascript
复制
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并使位置标头重定向,但我希望避免这种情况,因为从技术上讲,它是一个重定向响应。

EN

回答 1

Stack Overflow用户

发布于 2017-01-25 18:09:38

请求的'customHeader':'token'部分,触发浏览器首先发送CORS飞行前选项请求。。除了定义为CORS.安全请求.标头触发器浏览器的标头之外,添加到请求中的任何标题都可以发送CORS预飞选项请求。

你不能从邮递员那里得到这个信息的原因是,与浏览器引擎不同,邮递员没有实现CORS,所以它不会发送选项请求。(Postman并不是在浏览器为Web应用程序执行的相同来源的Web安全模型下工作的。)

如果服务器没有以正确的方式响应CORS预飞选项请求,则您的请求将失败,唯一的解决办法是不将'customHeader':'token'部件添加到您的请求中,或者以任何方式构造您的请求,从而触发浏览器执行CORS预运行。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41858010

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档