react-native fetch和basic authentication

时间:2016-01-15 16:43:27

标签: react-native

我尝试使用这种语法获取fetch:

fetch("https://user:password@url", {
   ...
}).then((response) => {
   ...
}).done();

相同的网址在CURL中有效,但在React Native中返回401。

有什么想法吗?

谢谢, 保罗

2 个答案:

答案 0 :(得分:31)

我发现这种格式https://user:password@url在CURL和节点中运行良好,但在fetch中运行不正确。

我必须使用base-64 npm模块并传递Headers对象。

// https://www.npmjs.com/package/base-64
const base64 = require('base-64');

...

var headers = new Headers();
headers.append("Authorization", "Basic " + base64.encode("user:password"));

fetch("https://url", {
    headers: headers
  })
  .then((response) => { ... })
  .done();
`

答案 1 :(得分:1)

您可以使用btoa()而不是base_64模块。 btoa()Window上的函数。