react-native - Heroku 授权 header 丢失

标签 react-native go heroku cors

我在 heroku 中部署了一个 golang api 服务。我正在使用 axios 从 react 原生 iOS 应用程序调用 api。问题是 Heroku 中缺少授权 header ,即使我已经验证我正在使用 reactotron 发送授权 header 。
客户端:

const {data} = await axios.get(url, {
  headers: {
     Authorization: `Basic ${token}`,
  },
});
服务器端日志:
time="2020-06-27T00:41:06Z" level=info msg=Header name=Accept value="application/json, text/plain, */*"
2020-06-27T00:41:06.875881+00:00 app[web.1]: time="2020-06-27T00:41:06Z" level=info msg=Header name=Accept-Encoding value="gzip, deflate, br"
2020-06-27T00:41:06.875885+00:00 app[web.1]: time="2020-06-27T00:41:06Z" level=info msg=Header name=Connection value=close
2020-06-27T00:41:06.875912+00:00 app[web.1]: time="2020-06-27T00:41:06Z" level=info msg=Header name=X-Forwarded-For value=some ip address
2020-06-27T00:41:06.875969+00:00 app[web.1]: time="2020-06-27T00:41:06Z" level=info msg=Header name=X-Forwarded-Proto value=https
2020-06-27T00:41:06.875970+00:00 app[web.1]: time="2020-06-27T00:41:06Z" level=info msg=Header name=Connect-Time value=1
2020-06-27T00:41:06.875994+00:00 app[web.1]: time="2020-06-27T00:41:06Z" level=info msg=Header name=Accept-Language value=en-us
2020-06-27T00:41:06.876042+00:00 app[web.1]: time="2020-06-27T00:41:06Z" level=info msg=Header name=X-Request-Start value=1593218466874
2020-06-27T00:41:06.876047+00:00 app[web.1]: time="2020-06-27T00:41:06Z" level=info msg=Header name=Total-Route-Time value=0
2020-06-27T00:41:06.876081+00:00 app[web.1]: time="2020-06-27T00:41:06Z" level=info msg=Header name=User-Agent value="app/1 CFNetwork/1126 Darwin/19.5.0"
2020-06-27T00:41:06.876106+00:00 app[web.1]: time="2020-06-27T00:41:06Z" level=info msg=Header name=X-Request-Id value=some id
2020-06-27T00:41:06.876146+00:00 app[web.1]: time="2020-06-27T00:41:06Z" level=info msg=Header name=X-Forwarded-Port value=443
2020-06-27T00:41:06.876150+00:00 app[web.1]: time="2020-06-27T00:41:06Z" level=info msg=Header name=Via value="1.1 vegur"
有趣的是我可以通过 Postman 成功调用端点。该代码还可以与本地 api 服务完美配合。我的第一个假设是 CORS 问题,所以我添加了这样的所有标题:
w.Header().Set("Access-Control-Allow-Origin", "*")
w.Header().Set("Access-Control-Allow-Methods", "POST, GET, OPTIONS, PUT, DELETE")
w.Header().Set("Access-Control-Allow-Headers", "Accept, Content-Type, Content-Length, Accept-Encoding, X-CSRF-Token, Authorization")
其中 w 是 http.ResponseWriter。他们没有帮助。缺少授权 header !如果我发送“X-Authorization”,它工作正常。我的猜测是heroku是问题所在。
有没有人有一个指针如何解决这个问题?

最佳答案

哇。我找到了解决方案。
https://herokuapp.com//api/something删除授权 header 。
https://herokuapp.com/api/something不丢弃标题。
双斜杠导致标题下降..

关于react-native - Heroku 授权 header 丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62604697/

相关文章:

github - 如何找到与 heroku 应用程序关联的 github 存储库?

javascript - 从回调函数返回不设置文本

javascript - 不变违规 : Objects are not valid as a React child (React Native)

javascript - react native : Can't run app on iOS correctly "Failed to load bundle(http://localhost:8081/index.bundle?"

go - 我正在使用 golang present 工具来构建演示文稿。有没有办法覆盖默认模板?

node.js - (貌似)遵循 Node.js 的 Heroku 说明后出现错误

javascript - react native : undefined is not a function (evaluating 'this.props.passwordChanged(text)' )

Go Channels 行为看起来不一致

go - 结构中的私有(private)/公共(public)领域..表现不同

python - 如何在 requirements.txt 中安装 git 源?