我是Javascript的新手,我正在使用网站的API尝试获取有关用户的一些信息,一旦他们完成了网站的授权过程,但我无法理解如何存储(供以后访问)响应来自网站。
假设这是我对网站的“用户”对象的请求:
// POST for user object
$.post("https://api.twitch.tv/kraken/oauth2/token", {
client_id: clientID,
client_secret: clientSecret,
grant_type : 'authorization_code',
redirect_uri: redirectURI,
code: user_code},
function(data) {
grabUserAccessTok(data);
});
现在,我正在将响应传递给grabUserAccessTok(),但如果我想存储此响应,以便我可以在网页上的不同时间显示所有响应的不同属性,该怎么办?我怎么能存储这个回复?如何访问存储的响应以在我的网页上显示它,例如<div>
元素?
答案 0 :(得分:2)
您已将响应传递给函数。这意味着您已拥有数据。
请注意:根据twitch API(),您无法从此请求中获得用户名。
因此,要获得用户,您需要更新您的帖子请求。
在获得post请求后,Twitch返回JSON,因此您可以使用$.parseJSON来获取对象中的数据。
// POST for user object
$.post("https://api.twitch.tv/kraken/oauth2/token", {
client_id: clientID,
client_secret: clientSecret,
grant_type : 'authorization_code',
redirect_uri: redirectURI,
code: user_code},
function(data) {
var obj = $.parseJSON( data ); //parses the JSON
var user = obj.user; //reads the element user from the JSON
$( body ).append( user ); //I wouldnt advice doing it like this but for demonstrating purposes...
grabUserAccessTok(data);
});
最好是在您的grabUserAccessTok中编写此代码,并从检索/解析部分中分离UI部分
答案 1 :(得分:0)
很容易:
var response_from_server = null;// variable for storage the response
// POST for user object
$.post("https://api.twitch.tv/kraken/oauth2/token", {
client_id: clientID,
client_secret: clientSecret,
grant_type : 'authorization_code',
redirect_uri: redirectURI,
code: user_code},
function(data) {
response_from_server = data; // store the response
grabUserAccessTok(data);
$("#div_element_id").text(response_from_server.username);//output
});
注:
// Step 1:
var response_from_server = null;// variable is defined
// there response_from_server is null
// Step 2:
$.post(...,function(data){
// Step 4:
response_from_server = data; // store the response
// there response_from_server is data, because the POST is finished
});
// Step 3:
// there response_from_server is still null, because POST call in process