gpt4 book ai didi

jquery - 如何从 facebook 页面墙获取 json 或 jsonp 而不会在 Chrome 中出现 mime 错误

转载 作者:行者123 更新时间:2023-12-01 04:08:32 24 4
gpt4 key购买 nike

我看过诸如this one之类的帖子这表明您可以获取公共(public) Facebook 页面的 JSON 墙。但他们没有给出有效的例子。我尝试使用 $.ajaxjsonp 获取它,但在 Chrome 中出现 mime 错误,在 Safari 中出现不同的错误,在 FireFox 中出现另一个不同的错误。我错过了什么?

我创建了一个 jsFiddle HERE记录控制台,代码如下

 $.ajax({
url: 'https://www.facebook.com/feeds/page.php?id=54971236771&format=JSON',
type: 'get',
dataType: 'jsonp',
error: function (jqXHR, textStatus, errorThrown) {
console.log('Problem with call to get list of articles\n',errorThrown);
},
success: function (data) {
console.log('call success, data is\n', data);
}
});

最佳答案

当前浏览器禁止跨域 JSON 请求。 JSON 请求如下所示:

{ foo: 'bar' }

您获得的文件是纯 JSON,在当前所有浏览器中都是禁止的。但 JSONP 是允许的。 JSONP 看起来像:

mycallback({ foo: 'bar' });

当您的网址类似于 https://www.facebook.com/feeds/page.php?id=54971236771&format=JSON 时,结果就是 JSON。

要获取 JSONP,您需要使用 facebook API url,并且需要从 facebook 获取特殊的 facebook API token :

https://graph.facebook.com/54971236771/feed?access_token=YOUR-TOKEN-GOES-HERE

实际的 URL 将是这样的:

https://graph.facebook.com/54971236771/feed?access_token=YOUR-TOKEN-GOES-HERE&callback=jQuery110208932981239631772_1401824402598&_=1401824402599

完整代码如下:

$.ajax({
url: 'https://graph.facebook.com/54971236771/feed?access_token=YOUR-TOKEN-GOES-HERE',
type: 'get',
dataType: 'jsonp',
error: function (jqXHR, textStatus, errorThrown) {
console.log('Problem with call to get list of articles\n', errorThrown);
},
success: function (data) {
console.log('call success, data is\n', data);
}
});

关于jquery - 如何从 facebook 页面墙获取 json 或 jsonp 而不会在 Chrome 中出现 mime 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24022795/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com