Per quanto riguarda il tuo primo problema, a giudicare dal tuo messaggio di errore, potresti non averlo implementato correttamente perché typeahead non sta eseguendo una richiesta JSONP.
A partire dal Typeahead.js v0.9.3 è possibile eseguire una richiesta JSONP passando 'jsonp' come il tipo di dati, in questo modo:
$('.typeahead').typeahead({
name: 'jsonpExample',
remote: {
// ...
dataType: 'jsonp'
}
});
Troverete che typeahead sarà ora eseguire le richieste JSONP .
UPDATE
a rispondere alle sue seconda edizione. L'autore ha mirato a supportare JSONP - e in generale funziona - ma non funziona correttamente in alcuni casi limite nella versione corrente.
Ad esempio, se è necessario attivare una richiesta JSONP utilizzando una query diversa da "callback", si verrà bloccati. In questa o in una situazione simile, hai due opzioni:
1) Patch typeahead.js te stesso per far funzionare JSONP. Il problema del nome callback, ad esempio, can be fixed by a simple solution
2) Attendere il rilascio di v0.10 quando viene esposto l'oggetto jQuery AJAX completo. Purtroppo è passato un mese dalla sua data di consegna promessa e non ci sono indicazioni che sarà completato nelle prossime settimane
fonte
2013-09-12 13:39:22
Typeahead non è in grado di "supportare"/annullare la stessa politica di origine/Access-Control-Allow-Origin problemi - è totalmente fino al browser. Se si desidera una richiesta di dominio incrociato come origine per il typeahead, è necessario gestirla come si fa quando si ha a che fare con tale sfida in qualsiasi altro contesto. – davidkonrad