自动完成:未能加载响应数据
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/
【讨论】:
以上是关于自动完成:未能加载响应数据的主要内容,如果未能解决你的问题,请参考以下文章