我正在通过 API 获取数据。这是一个电影,电视节目,人物数据库。当我在搜索框中搜索一个词时,它会返回嵌套在数组中的对象中的相关电影、电视节目和人物名称。例如,当我搜索“战斗”时:
[
0:{original_name: "? ????", id: 70813, media_type: "tv", name: "Fight My Way", vote_count: 5,…}
1:{vote_average: 8.2, vote_count: 8057, id: 550, video: false, media_type: "movie", title: "Fight Club",…}
2:{vote_average: 6.1, vote_count: 215, id: 345922, video: false, media_type: "movie",…}
3:{original_name: "Fight", id: 46554, media_type: "tv", name: "Fight", vote_count: 0, vote_average: 0,…}
4:{original_name: "The Good Fight", id: 69158, media_type: "tv", name: "The Good Fight", vote_count: 22,…}
5:{vote_average: 0, vote_count: 0, id: 158301, video: false, media_type: "movie", title: "Fight",…}
]
Run Code Online (Sandbox Code Playgroud)
还有更多结果,但我删掉了它们。如您所见 …
在问这个问题之前我进行了研究,但找不到答案。
我用react js制作了一个表单。当我单击该按钮时,它会使用 createUserWithEmailAndPassword() 方法创建一个用户。创建用户没有问题。我想添加额外的信息,例如;用户名:“Usernameeeee”到我的数据库。数据库将如下所示:
users {
userUid1: {name: "Name User 1"}
userUid2: {name: "Name User 2"}
....
}
Run Code Online (Sandbox Code Playgroud)
当我使用 createUserWithEmailAndPassword() 时,它会创建一个用户并登录。但正如您在上面看到的,我需要当前用户的 ID。我知道如何正常获取它, firebase.auth().currenUser... 但是在创建用户时我无法捕获用户的 id。它返回空;
export function signUpUser({email, password}) {
return function (dispatch){
firebase.auth().createUserWithEmailAndPassword(email, password)
.then(
() => dispatch({type: USER_SIGNUP_SUCCESS})
)
.then(console.log(firebase.auth().currentUser))
.catch(error => {
dispatch({type: USER_SIGNUP_FAIL, payload: error.message});
});
}
Run Code Online (Sandbox Code Playgroud)
}
当我控制台当前用户时,创建用户已完成但尚未登录。那么如何在创建用户时添加信息呢?(不是在以其他方式登录后)
我想通过反应项目中的axios从服务器获取一些数据.当我把网址放在浏览器上并点击进入浏览器时问我用户名和密码,之后,我可以看到json数据.但我不知道如何在get方法中设置axios头中的密码和用户名.我在很多论坛和网页上搜索过它,特别是这个链接对我没有帮助:发送axios获取带有授权标题的请求.所以最后我尝试了(在此之前很多事情,但我更困惑):
componentDidMount() {
axios.get('http://my_url/api/stb', {auth: {
username: 'usrnm',
password: 'pswrd'
}})
.then(function(response) {
console.log(response.data);
console.log(response.headers['Authorization']);
}).catch(err => console.log(err));
}
Run Code Online (Sandbox Code Playgroud)
而我什么都得不到.我在控制台中收到此错误:
Error: Network Error
Stack trace:
createError@http://localhost:3000/static/js/bundle.js:2195:15
handleError@http://localhost:3000/static/js/bundle.js:1724:14
Run Code Online (Sandbox Code Playgroud)
实际上,api文档提到了这些话:
如果没有标题或数据不正确 - 服务器的答案将包含HTTP状态401 Unauthorized和消息:
< {"status":"ERROR","results":"","error":"401 Unauthorized request"}
Run Code Online (Sandbox Code Playgroud)
要成功验证,只需在API的每个请求标头中添加:
Authorization: Basic <base64encode("login":"password")>
Run Code Online (Sandbox Code Playgroud)
奇怪的是,当我使用邮递员时,响应会在身体部分下方向我发送"401未经授权"的回复.但我在浏览器的控制台中看不到任何401错误.