自动完成:未能加载响应数据

Posted

技术标签:

【中文标题】自动完成:未能加载响应数据【英文标题】:autocomplete: failed to load response data 【发布时间】:2017-06-21 23:29:27 【问题描述】:

我构建了一个自动完成功能,它在我的机器上运行良好。但现在我把它生活了,它不起作用。当您键入文本时,等待图像开始旋转,但没有任何反应。幸运的是页面没问题,所以用户可以继续,但是自动完成建议没有出现。

这对我来说是全新的,但我开始检查 Google Chrome 中的 Inspect,我注意到响应消息“未能加载响应数据”。但现在我不明白如何处理这个问题。我该如何解决这个问题?在 Edge 中也会发生同样的情况。

您可以像这样重现错误:

    访问 www.gratisverlanglijstje.nl 登录喜欢 testac 密码 testac 在菜单内点击上方按钮“Verlanglijstje van testac” 点击第二个绿色按钮'Cadeau toevoegen (vrije invoer)' 在第一个文本框中输入 lego

现在应该会出现自动完成列表,但没有任何反应,并且在右侧的文本框中,等待图像开始(并一直)旋转... 我认为您将从 google 检查窗口中获得最多的信息,但如果您需要代码 sn-ps,请告诉我...

【问题讨论】:

【参考方案1】:

海布尔曼!

您是否尝试过调试服务器端代码? ajax 对象正在返回您的默认错误页面

<h2>Er is helaas een fout opgetreden</h2>
<span id="ctl00_ContentPlaceHolder1_lblMsg" style="color:Red;">Klik op de Menu-knop rechtsboven voor jouw mogelijkheden. Ga anders terug naar de homepage en log daar (opnieuw) in. Dan moet het goed gaan.</span><br /><br />
<span id="ctl00_ContentPlaceHolder1_lblSol"></span><br /><br />
<a href='/default.aspx'>homepage</a><br /><br /><br />
<span id="ctl00_ContentPlaceHolder1_Label1">Mocht je er niet uitkomen, stuur dan gerust een bericht met het <a href='/contact.aspx'>contactformulier</a>. Vermeld foutcode E1 in het bericht, en beschrijf wat je deed voordat de foutmelding zich voordeed.</span><br /><br />

尝试将GetSuggesties 方法的主体包装在try catch 中,看看是否在某处抛出异常。

如果我缺少什么,请告诉我。

编辑 我通过简单地改变你的 ajax 发现:

$.ajax(
                url: 'cadeausuggestiesservice.asmx/GetSuggesties',
                method: 'post',
                data:  term: request.term ,
                dataType: 'json',
                success: function (data) 
                    response(data);
                ,
                error: function (err) 
                    console.log(err);
                
            );

现在您可以在控制台中浏览对象

【讨论】:

感谢 Robbie,我将错误更改为 console.log,但该对象并没有提供(我)太多信息。如果你把 url 从 cadeau_toevoegen.aspx 改成 cadeau_toevoegentest.aspx 你可以看控制台请看gratisverlanglijstje.nl/beheerder/cadeausuggestiesservice.asmx 没问题,很遗憾我也无法获得更多信息。错误必须是服务器端的,并且您的 GetSuggesties 方法不会返回错误。您如何捕获异常服务器端并将其作为GetSuggesties 方法的结果发送回来。 javascript 中没有可用的信息。 感谢您的快速回复。我会按照您的建议尝试 GetSuggesties 返回更多错误信息... 尝试在服务器端查看Environment.InteractiveMode。您可以创建一个错误页面来显示堆栈跟踪或有关错误的更多信息。 ajax 请求被正确处理并返回没有错误。由于错误,服务器决定创建错误页面作为返回值 对不起,我不知道这样做。我在原始帖子中发布了我的 asmx 代码。【参考方案2】:

将此添加到我的 web.config 解决了我的问题:

<webServices>
<protocols>
<add name="HttpGet"/>
<add name="HttpPost"/>
</protocols>
</webServices>

看看https://msdn.microsoft.com/en-us/library/4yx7be39(v=vs.100).aspx和http://codeclimber.net.nz/archive/2006/12/22/How-to-enable-an-ASPNET-WebService-to-listen-to-HTTP/

【讨论】:

以上是关于自动完成:未能加载响应数据的主要内容,如果未能解决你的问题,请参考以下文章

jQueryUI 自动完成映射响应数据

vue页面加载完成自动执行方法

vue页面加载完成自动执行方法是啥?

来自json的Django自动完成

反应处理自动完成等待一段时间以加载动态数据[重复]

js实现在加载页面完成后input框自动执行一个函数,怎么实现