我正在尝试对生成 xml 的 googlesuggest 页面进行 ajax 调用。我使用了一个似乎可行的小技巧,并在此处记录了 代码是这样的:
$.ajax({
url: 'https://suggestqueries.google.com/complete/search',
data: {
client: 'firefox',
q: word,
},
dataType: 'jsonp'
})
.done(function(dataWeGotViaJsonp){
var len = dataWeGotViaJsonp.length;
for(var i=0;i<len;i++){
alert(dataWeGotViaJsonp[i]);
}
});
我的扩展程序的控制台中没有任何错误,但它不会生成任何内容。我应该如何使它正常工作或有什么问题?
从this : 返回的数据如下所示:
["ob",["obama","obamacare","obituaries","obey","oblivion","obama phone","oberlin college","obama gun control","obagi","obsidian"]]
其中“ob”是搜索词。
更新:
这是我在这篇文章中提供的第一个链接的说明之后更新的代码,用 $.getJSON 替换了 $.ajax。
function process(word){
$.getJSON("https://suggestqueries.google.com/complete/search?callback=?",
{
"jsonp":"suggestCallBack", // jsonp callback function name
"q":word, // query term
"client":"firefox" // force youtube style response, i.e. jsonp
}
);
suggestCallBack= function(dataWeGotViaJsonp){
alert("asdas");
var len = dataWeGotViaJsonp.length;
for(var i=0;i<len;i++){
alert(dataWeGotViaJsonp[i]);
}
};
};
更新 2:
我将 client: 说明符下的关键字 'firefox' 替换为 'youtube' ,它现在返回如下内容:
window.google.ac.h
(
["ob",[["obama",0,[]],
["obamacare",0,[]],
["obituaries",0,[]],
["obey",0,[]],
["oblivion",0,[]],
["obama phone",0,[]],
["oberlin college",0,[]],
["obama gun control",0,[]],
["obagi",0,[]],
["obsidian",0,[]]],
{"k":1,"q":"I3uqQqdI9GsurIoEbRJwRQ_P7Co"}]
)
我不知道如何实际解析。我很好奇为什么它不能在标准的谷歌搜索下工作。可以在这个JSfiddle上找到一个非常好的测试工具。