如何解决如何提取保存到DOM的Foursquare access_token作为链接,以便可以将其用于API调用?
| 本质上,如果我在Firebug中并查看网络对象,则看到状态200 如果单击JSON选项卡,则可以看到我的access_token,但是如何从中提取它,以便可以用于API调用? 这是尝试过的最新代码。var jsonUrl = url +\"&callback=?\";
var access_token;
$(\"#getJSON\").click(function() {
$.getJSON(jsonUrl,{ dataType: \"JSONP\" },function(json){
...
access_token = json.access_token;
...
});
});
还尝试了:
$.ajax({
dataType: \'jsonp\',jsonp: \'callback\',url: url,success: function (json) {
console.log(json.access_token);
},});
但是当我尝试警告(access_token);或运行foursquare api调用时出现以下错误
Resource interpreted as Script but transferred with MIME type application/json.
Uncaught SyntaxError: Unexpected token : checkinsGET https://api.foursquare.com/v2/users/self/checkins?oauth_token=undefined&format=json 401 (Unauthorized)
我感觉它已经准备就绪,正在等我调用它,但是究竟该如何从Dom将其打印到我可以使用的var中呢?奋战了几个小时,出于某种原因尝试了我所有的研究技术,这使我难以理解。到目前为止,感谢大家的帮助,我真的很希望能通过这个!
解决方法
浏览器本机实现全局函数JSON.parse(),如果由于某些原因无法正常工作,则可以使用jQuery \的parseJSON()函数。
这是它的工作方式。假设您的JSON对象具有以下格式:
{
Status: \"Success\",Resource: {
Name: \"Person\'s Name\",URL: \"http://blahblahblah.com/extrastuffhere?querystuff=here\"}}
然后,您可以使用JSON.parse()来访问\“ URL \”元素,如下所示:
var url = JSON.parse(json).Resource.URL;
(我不熟悉Foursquare,但是它看起来应该很相似,您可以执行console.log(json)来查看其结构。)
因此,您的代码可能看起来像这样:
$(\"#getJSON\").click(function() {
$.getJSON(jsonUrl,{ dataType: \"JSONP\" },function(json){
var parsed = JSON.parse(json);
console.log(parsed);
access_token = parsed.access_token;
});
});
希望有帮助!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。