Impostazione output
a jsonp
funziona per me.
Vedere example query per la struttura dell'output.
La spiegazione è di seguito.
Il codice è HERE.
$("#wd6450").autocomplete({
source: function(request, response) {
$.ajax({
url: "http://ff.search.yahoo.com/gossip",
dataType: "jsonp",
data: {
"output": "jsonp",
"command": request.term
},
success: function(data) {
var suggestions = [];
// for each element in the data.gossip.results array ...
$.each(data.gossip.results, function(i, val) {
// .. push the value of the key inside our array
suggestions.push(val.key);
});
// call response with our collected values
response(suggestions);
}
});
}
});
Spiegazione:
Utilizzando dataType: "jsonp"
jQuery si aspetta il formato di output di essere in JSONP. Quando effettui una chiamata dal tuo codice utilizzando output: "fxjson"
, l'URL è simile a this ma come puoi vedere l'output non è un JSONP valido, perché la richiamata non è stata chiamata.
D'altra parte quando si specifica output: "jsonp"
la query sembra this e come si può vedere l'output è un JSONP valida - la richiamata è stato chiamato.
Hai collegato un esempio Amazon nei commenti. Chiamata $.ajax()
proverà a URL come this. L'output dal servizio web di Amazon è JSONP valido, poiché la richiamata viene richiamata con tutti i dati.
Quindi il risultato è: i servizi Web di Yahoo restituiranno il formato in JSONP se si fornisce il parametro ?output=jsonp
nell'URL configurando $.ajax()
con output: "jsonp"
. Il servizio web di Amazon restituisce questo formato per impostazione predefinita senza parametri aggiuntivi. Questa è una configurazione specifica del servizio web e deve essere consultata con la sua documentazione o altri risorse correlate.
Informazioni su JSONP disponibile HERE.
wow, sembra un insetto. – noob