当前位置: 首页 > 面试题库 >

自动完成请求/服务器响应是什么样的?

柳和怡
2023-03-14
问题内容

这似乎是一个黑洞:经过一个小时的搜索jQuery UI网站,Stack
Overflow和谷歌搜索,我还没有找到有关如何编写AutoComplete 服务器端 的最基本信息。

什么参数传递给服务器,JSON响应应该是什么样?

我一定想念一些东西,因为其他人怎么学到的呢?网站似乎只讨论客户端JavaScript代码,而没有讨论协议或服务器端示例。

我需要足够的资源来使最简单的远程示例正常工作。


问题答案:

什么参数传递给服务器

您需要传递request.term到服务器端代码(来自文档):

具有单个属性“ term”的请求对象,该属性引用文本输入中当前的值。

基本上,在您的autocomplete代码中,您将具有以下内容:

$("#autocomplete").autocomplete({
    // request.term needs to be passed up to the server.
    source: function(request, response) { ... }
});

JSON响应应该是什么样?

autocomplete小部件需要具有labelvalue属性的JSON对象数组(尽管如果仅指定value,它将用作标签)。因此,在最简单的情况下,您可以仅返回如下所示的数据:

[
    { label: 'C++', value: 'C++' }, 
    { label: 'Java', value: 'Java' }
    { label: 'COBOL', value: 'COBOL' }
]

如果您需要更复杂的东西,可以使用函数的success参数对$.ajax自动完成获取之前返回的数据进行规范化:

source: function( request, response ) {
    $.ajax({
        /* Snip */
        success: function(data) {
            response($.map( data.geonames, function( item ) {
                return {
                    label: item.name + (item.adminName1 ? ", " + item.adminName1 : "") + ", " + item.countryName,
                    value: item.name
                }
            }));
         }
    });

这段代码摘自此处的示例(这是在更复杂的场景中ajax +自动完成工作的一个很好的整体示例)。

基本上,要解决的问题是,在成功执行ajax请求后,将使用(对$.map)将接收到的数据规范化为autocomplete小部件期望的数据。

希望有帮助。



 类似资料:
  • 我已将自动完成功能应用于两个。为此,我使用了自动完成计算器。我观察到它的速度减慢到我甚至无法输入一个字符的程度。有什么解决办法吗? 谢谢

  • 问题内容: 即时通讯在JSON中获取响应,但这不会解析JSON响应。我在做什么错?我在doc http://docs.jquery.com/Plugins/Autocomplete上找不到任何内容 问题答案: 检查dataType和parse选项。

  • 某个服务下的所有url请求(包括不存在的url)都无法响应,一直转圈圈,初步排查如下: top -Hp pid 系统内存 free -m GC信息 线程堆栈信息。。。信息过长发不出来,我把链接贴上来 https://blog.csdn.net/a343781436/article/details/139834298?cs... 日志信息没有抛异常: 到底是啥问题呢,谢谢各位大佬~

  • 我正在尝试使用HTTP请求/响应用Java编写一个简单的客户机-服务器应用程序。我想客户端是一个桌面程序发送(张贴)请求到服务器。该服务器是一个网页,将被托管在Apache Tomcat服务器上。服务器必须能够读取信息并将其显示在浏览器上,并且必须能够用状态代码200响应客户端。我正在使用eclipse和Apache tomcat服务器。到目前为止,我已经尝试了各种资源,但我所能找到的是一个可以从

  • 我正在使用openapi生成器maven插件的4.3.1版本在Java11中生成SpringBoot服务器。 对于PUT请求,我希望能够在成功时将URI返回到创建/更新的对象,并且在不成功时返回带有问题信息的纯文本。 我的API的json对于PUT请求有以下内容: 生成的API: 然而,该方法的返回类型是

  • 我已经在我的应用程序中添加了应用程序洞察。 过了一段时间,我正确地看到了浏览器页面的加载时间,但是其他的图都没有显示任何数据。 我看到这个: 我的razor布局中有正确的javascript片段(并且在查看网站时通过页面源验证了它既获得了输出,又将请求发送到); 我在web根目录中有; 在应用程序启动期间,我正在的方法中通过设置正确的检测密钥 请注意,我在文件中没有检测键,因为我正在多次部署网站,