我正在尝试使用youtube" api"搜索
http://suggestqueries.google.com/complete/search?q=INPUT&client=firefox&hl=cs
但网站返回content-disposition: attachment;
标头并下载带有JSON响应的文件(f.txt)。
有没有办法在javascript中获取JSON作为字符串?
(我确信有.Youtube必须以某种方式这样做)
jQuery-less请尽可能。
答案 0 :(得分:0)
不确定您是如何尝试直接在浏览器中访问API的。它不会那样工作。对同一API进行AJAX调用,您将收到错误消息,
XMLHttpRequest无法加载http://suggestqueries.google.com/complete/search?q=india&client=firefox&hl=cs。 No' Access-Control-Allow-Origin'标头出现在请求的资源上。起源' http://null.jsbin.com'因此不允许访问。
原因?
因为此API适用于Google内部产品,所以它无法正常运行。
跨域限制相对常见,并且基于JSONP的请求可以解决此问题。
试试这个,
$.getJSON("http://suggestqueries.google.com/complete/search?callback=?",
{
"hl":"en",
"jsonp":"suggestCallBack",
"q":'ind', // query term
"client":"firefox"
});
suggestCallBack = function (data) {
console.log(data);
};
现在这是一个基于JQuery的解决方案,但是没有JQuery也可以轻松地调用AJAX,但是我没有尝试过没有JQuery的JSONP调用。