我正在嘗試對生成xml的googlesuggest頁面進行ajax調用。我用一個小黑客,似乎工作,並記錄在案here 的代碼是這樣的:來自Chrome擴展的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更換$阿賈克斯的代碼。
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:
我替換下客戶的關鍵字 '火狐':說明符的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找到。
你可以把方法.fail看看你是否得到一個錯誤。 Chrome開發人員控制檯顯示錯誤? – aelbaz 2013-04-23 09:26:05
任何控制檯都沒有錯誤。我會嘗試與.fail現在。我忘了提及我授予csp的權限,如下所示: '「content_security_policy」:「script-src'self'https://suggestqueries.google.com/; object-src'self'」' – Edeph 2013-04-23 10:29:51
在清單中文件已授予該網址的權限:'https://suggestqueries.google.com/complete/search'? – aelbaz 2013-04-23 11:48:12