Boîte personnalisée avec la saisie semi-automatique de Google / Bing. Est-il possible de lire le fichier JSON reçu?

J’essaie de construire une page Web avec un champ de recherche. Je veux prendre les options de saisie semi-automatique de Bing (par exemple).

Il est possible d’obtenir l’auto-complétion de bing en:

http://api.bing.com/osjson.aspx?query=YOUR_QUERY

J’ai écrit du code avec un widget autocomplete, demandant à obtenir le json en jsonp, et j’ai réussi à voir (dans Fiddler) que le json arrivait. Mais comme il n’arrive qu’en json, et pas dans le format requirejs, j’obtiens parseError. (Je l’ai vu dans la fonction d’erreur. La fonction de réussite n’est pas appelée)

La partie pertinente de mon code est:

$( "#mySesearchBox" ).autocomplete({ source: function( request, response ) { $.ajax({ url: "http://api.bing.com/osjson.aspx?query=" + request.term, dataType: "jsonp", ... 

Y a-t-il un moyen de surmonter ce problème?

J’ai pensé à exécuter un serveur qui obtiendrait une telle requête, demanderait le JSON à Bing et répondrait dans le format requirejs. Cependant, je préfère une solution plus simple.

Aucun conseil?

Une démo de travail complète: http://jsfiddle.net/LxXJz/

Ceci utilise: http://api.bing.net/qson.aspx

ou

Ici vous allez “tester” comme cette démo : http://jsfiddle.net/zNUBc/

Feuilletez tout votre code ou un violon que je pourrais résoudre pour vous :) J’espère que cette démo vous aidera.

code

 var url = 'http://api.bing.com/osjson.aspx?JsonType=callback&JsonCallback=?'; $.getJSON(url, { query: 'hulk' }, function (data) { document.write(data) }); 

Mise à jour 16 heures plus tard :)

Voici la solution utilisant: http://api.bing.com/osjson.aspx

Démo => http://jsfiddle.net/pW6LZ/

voir ce screeshot attentivement:

entrez la description de l'image ici

Code mis à jour qui fonctionne après la mise à jour en bing:

 success: function (data) { console.log(data); var suggestions = []; $.each(data[1], function (i, val) { suggestions.push(val); }); //This returns the top 5 suggestions, instead of a list of over 20 suggestions. response(suggestions.slice(0, 5));