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 回答