Configuración output
a jsonp
funciona para mí.
Consulte example query para ver la estructura de la salida.
La explicación está debajo.
El código es 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);
}
});
}
});
Explicación:
Mediante el uso de jQuery dataType: "jsonp"
espera que el formato de salida para estar en JSONP. Cuando realiza una llamada desde su código usando output: "fxjson"
la URL se ve como this pero como puede ver, el resultado no es un JSONP válido, porque no se llamó a la devolución de llamada.
Por otro lado cuando se especifica output: "jsonp"
la consulta parece this y como se puede ver la salida es una JSONP válida - la devolución de llamada se llama.
Has vinculado un ejemplo de Amazon en los comentarios. $.ajax()
llamada allí intentará URL como this. La salida del servicio web de Amazon es JSONP válida, porque se llama a la devolución de llamada con todos los datos.
Así, el resultado es: servicios web de Yahoo tendrán formato de volver en JSONP si proporciona ?output=jsonp
parámetro en la URL mediante la configuración de $.ajax()
con output: "jsonp"
. El servicio web de Amazon devuelve este formato por defecto sin ningún parámetro adicional. Esta es una configuración específica del servicio web y debe consultarse con su documentación u otros recursos relacionados.
Información sobre JSONP disponible HERE.
guau, parece un error. – noob