Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从jQueryui自动完成调用获取HTTP状态代码_Jquery_Jquery Ui_Jquery Ui Autocomplete - Fatal编程技术网

从jQueryui自动完成调用获取HTTP状态代码

从jQueryui自动完成调用获取HTTP状态代码,jquery,jquery-ui,jquery-ui-autocomplete,Jquery,Jquery Ui,Jquery Ui Autocomplete,我试图从jQueryUIAutoComplete调用中获取响应的HTTP状态代码,但我找不到任何方法 $( "#site_search" ).autocomplete({source: '/members/search/suggest', select: function (event, ui) { var search = escape

我试图从jQueryUIAutoComplete调用中获取响应的HTTP状态代码,但我找不到任何方法

$( "#site_search" ).autocomplete({source: '/members/search/suggest',
                                  select: function (event, ui) {
                                              var search = escape(ui.item.value);
                                              window.location = '/members/search/?q='+search;
                                          },
                                  response: function (event, ui) {
                                              console.log ($(this));
                                              console.log (ui);
                                              console.log (event);
                                          }
});
该网站的登录名在某段时间不活动后过期。然而,如果有人在这一点上开始搜索,自动建议只是需要很长时间。我想做的是读取状态代码,查看401,然后禁用页面加载的自动完成功能。我知道如何完成这一部分(api有一个启用/禁用切换),但我不知道如何恢复状态代码,即使将事件和ui放到console.log中

谢谢, 汉斯

更新

下面是最终版本,它可以在导致问题的几个场景下工作。我很高兴。谢谢阿穆拉-很大的帮助

// SITE SEARCH
if ($('input#site_search').length)
{
    $( "#site_search" ).autocomplete({
            source: function(request, response)
            {
                $.ajax(
                {
                    url: '/members/search/suggest',
                    dataType: 'json',
                    data: { term: request.term },
                    success: function(data, textStatus, jqXHR)
                    {
                        response(data);
                    },
                    error: function(jqXHR, textStatus, errorThrown)
                    {
                        if (textStatus == 'timeout')
                        {
                            $('input#site_search').autocomplete('disable');
                        }
                        // Handle errors here
                    },
                    timeout: 2000, // the SBWS login can slow things down, too
                    statusCode:
                    {
                        401: function ()
                        {
                            $('input#site_search').autocomplete('disable');
                        }
                    }
                });
            },
            select: function (event, ui)
            {
                var search = escape(ui.item.value);
                window.location = '/members/search/?q='+search;
            }
    });
}

您将需要定义源选项并使用自己执行提交。然后使用statusCode选项处理您关心的状态代码:

$( "#site_search" ).autocomplete({
   source: function(request, response) {
       $.ajax({
         url: '/members/search/suggest',
         dataType: "json",
         data: { term: request.term },
         success: function(data, textStatus, jqXHR) {
             response(data);
         },
         error: function(jqXHR, textStatus, errorThrown) {
           // Handle errors here 
         },
         statusCode: {
           401: function () {
             // Disable autocomplete here
           }
         }
    });
});,

注意:您需要jquery 1.5+才能正常工作。

直到现在我还没有回复过,仅供参考,这非常有效。谢谢