Javascript jQuery'背后的魔力是什么;s`$.getJSON`
我正在尝试使用香草javascript从reddit获取json数据,我发现了一些令人困惑的问题。我在这里发现了这个问题 使用jQuery有一个非常可靠的解决方案 这是他们共享的JSFIDLE。我们可以看到Javascript jQuery'背后的魔力是什么;s`$.getJSON`,javascript,jquery,json,jsonp,Javascript,Jquery,Json,Jsonp,我正在尝试使用香草javascript从reddit获取json数据,我发现了一些令人困惑的问题。我在这里发现了这个问题 使用jQuery有一个非常可靠的解决方案 这是他们共享的JSFIDLE。我们可以看到$。getJSON正在工作 因此,我实现了自己的getJSON函数,如下所示: var getJSON = function(url, callback) { var xhr = new XMLHttpRequest(); xhr.open('GET', url,
$。getJSON
正在工作
因此,我实现了自己的getJSON
函数,如下所示:
var getJSON = function(url, callback) {
var xhr = new XMLHttpRequest();
xhr.open('GET', url, true);
xhr.responseType = 'json';
xhr.onload = function() {
var status = xhr.status;
if (status === 200) {
callback(null, xhr.response);
} else {
callback(status, xhr.response);
}
};
xhr.send();
};
// let url = 'http://query.yahooapis.com/v1/public/yql?q=select%20%2a%20from%20yahoo.finance.quotes%20WHERE%20symbol%3D%27WRC%27&format=json&diagnostics=true&env=store://datatables.org/alltableswithkeys&callback';
// let url = 'https://www.reddit.com/r/CryptoCurrency/.json?jsonp=?';
let url = 'http://www.reddit.com/r/pics/.json?jsonp=?';
getJSON(url , function(err, data) {
if (err !== null) {
console.log('Something went wrong: ' + err);
} else {
// console.log('Your query count: ' + data.query.count);
console.log('Your query count: \n');
console.log(data.query);
}
});
您可以在代码中看到我尝试了几个测试URL。Yahooapi.com运行良好,reddit没有。我认为这与jsonp
有关。这里是我设置的一个JSFIDLE,用来证明我的代码不起作用。这里抛出了一个错误,请求必须通过https发送,而在另一个JSFIDLE中则不是这样
有人知道如何用纯javascript处理这个问题吗?看起来您可以忽略JSONP问题,只需省略该查询参数即可。对于RedditAPI,它本身似乎工作得很好,并返回纯的、正常的JSON
如果您想使用JSONP,请查看使用纯Javascript和XHR的方法。JSONP,自2005年以来网络上有很多示例。在Cool添加一个工作副本非常有用。除非他们设置CORs,否则您需要使用JSONP。。。。