提问者:小点点

授权标头在获取中不起作用-React Native


我正在请求一个API,我有我的电脑(192.168.1.132)与反应本机从我的手机(在同一网络):

fetch('http://192.168.1.132:8000/test', {
  method: 'GET',
  headers: { 'Authorization': 'Bearer 4uFPmkP5326DXcRuHDKjRRrmhdeIBJ'},
  credentials: 'same-origin'
  })
  .then((response) => response.json())
  .then((responseJson) => {
    console.log('RESPONSE: ' + JSON.stringify(responseJson))
  })

但是我正在嗅探请求,它没有授权标头(我放的任何其他标头都会出现,但不会出现授权)。在Xcode中,我启用了“允许任意加载”。所以我的API返回401(未授权),因为显然没有授权标头。为什么它不包含在我的请求中?


共2个答案

匿名用户

您的url上需要一个尾部斜杠来附加标题。正如评论中指出的,让凭据显示“包含”。如果您的API在预检中附加了CSRF令牌,那么它也将包含该cookie。

匿名用户

首先,我只是在我的Node ExpressAPI中使用以下内容:

app.use(function(req, res, next) {
  res.header("Access-Control-Allow-Origin", "*");
  res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, Authentication");
  next();
});

它在react应用程序中无法正常工作,但它可以直接从失眠请求中工作,然后我需要添加以下内容:

const cors = require('cors');
app.options('*', cors())