Typeahead.jsは、Twitter で非常に人気のある自動提案ライブラリです。
インストールしたばかりですが、JSONP 経由のクロス ドメイン リクエストをサポートしていないようです。リモートオリジンが許可されていないというエラーが表示されます。
私はグーグルで検索しましたが、それに関連するものは何も見つかりません。
この機能がサポートされているかどうかは誰でも確認できますか。
Typeahead.jsは、Twitter で非常に人気のある自動提案ライブラリです。
インストールしたばかりですが、JSONP 経由のクロス ドメイン リクエストをサポートしていないようです。リモートオリジンが許可されていないというエラーが表示されます。
私はグーグルで検索しましたが、それに関連するものは何も見つかりません。
この機能がサポートされているかどうかは誰でも確認できますか。
最初の問題に関しては、エラー メッセージから判断すると、先行入力が JSONP 要求を実行していないため、正しく実装されていない可能性があります。
Typeahead.js v0.9.3 以降では、次のように「jsonp」を dataType として渡すことで JSONP リクエストを実行できます。
$('.typeahead').typeahead({
name: 'jsonpExample',
remote: {
// ...
dataType: 'jsonp'
}
});
typehead が JSONP リクエストを実行するようになりました。
アップデート
あなたの2番目の問題に答える際に。作者は JSONP をサポートすることを目標としており、概して動作しますが、現在のバージョンでは一部のエッジ ケースで適切に動作しません。
たとえば、「コールバック」以外のクエリを使用して JSONP リクエストをトリガーする必要がある場合、行き詰まるでしょう。この状況または同様の状況では、次の 2 つのオプションがあります。
1) typehead.js に自分でパッチを適用して、JSONP が機能するようにします。たとえば、コールバック名の問題は、簡単な解決策で修正できます
2) 完全な jQuery AJAX オブジェクトが公開されたときに、v0.10 がリリースされるのを待ちます。残念ながら、約束された納期を1か月過ぎており、今後数週間で完成する兆候はありません
0.10.5 では、リモート サーバー上で動作します。C Blanchard の答えに加えて、jsonp
属性が必要でしたajax
。
var items = new Bloodhound({
...
remote: {
url: 'http://localhost/api/items?q=%QUERY',
ajax: {
jsonp: 'callback',
dataType: 'jsonp'
}
});
items.initialize()
...
$('.typeahead').typeahead(null, {
...
source: items.ttAdapter()
});