0

jQueryUI の AutoComplete ウィジェットを使用して、人々が名前を入力して探しているものを自動的に見つけることができる検索入力を作成しようとしています。

私のサーバーバックエンドは以下を返しています:

$.get("http://localhost/academico/materias/listnames", function(data){
    $('.materiaPicker').autocomplete({
            // An example from jQueryUI documentation: 
            // source: [ "c++", "java", "php", "coldfusion", "javascript", "asp", "ruby" ]

            // This is the actual returned in 'data': ["Introduccion a Marketing ","Gerencia de Preparacion y Evaluacion de Proyecto","Gerencia Estrategica"]
            source: data
        });
    });

Firebug を使用すると、これはサーバーの応答です。

["Introduccion a Marketing ","Gerencia de Preparacion y Evaluacion de Proyecto","Gerencia Estrategica"]

オートコンプリート ボックスに何かを入力すると、次のようなリクエストが発生します。

http://localhost/academico/programaofrecidos/%5B%22Introduccion%20a%20Marketing%20%22,%22Gerencia%20de%20Preparacion%20y%20Evaluacion%20de%20Proyecto%22,%22Gerencia%20Estrategica%22%5D?term=gera

データ配列が適切な配列として認識されていないかのようです。

助言がありますか?

4

1 に答える 1

0

応答が文字列として解釈され、オートコンプリートがそれを使用してオートコンプリートを取得するようです。

URL は http:// で始まっていないため、相対 URL と見なされ、ベース URL がプレフィックスとして使用されます。

だからあなたは持っています

   http://localhost/academico/programaofrecidos/%5B%22Introduccion%20a%20Marketing%20%22,%22Gerencia%20de%20Preparacion%20y%20Evaluacion%20de%20Proyecto%22,%22Gerencia%20Estrategica%22%5D?term=gera.

http://localhost/academico/programaofrecidos/

ベースパスとして

%5B%22Introduccion%20a%20Marketing%20%22,%22Gerencia%20de%20Preparacion%20y%20Evaluacion%20de%20Proyecto%22,%22Gerencia%20Estrategica%22%5D

URLエンコードされた「配列」(実際には配列を表す文字列)ですか。

Intelligent Guess では不十分な場合があります。呼び出しでdataTypeを 'json' に追加し、最終的にサーバー側でJSON ヘッダーを追加してください。

于 2012-10-19T03:54:22.090 に答える