jQuery标记不显示搜索结果



我似乎遇到了某种环境问题,但我不确定如何进行调试。

我使用的是jQuery标记输入,在localhost上运行良好。然而,一旦移到我的生产箱,它就停止工作了。

我正在使用chromes的"开发工具"来解决问题。JQuery调用在某种程度上起作用,因为数据是从数据库中收集的,我可以在响应中看到它。一切看起来都很好,但它只是没有呈现下拉列表,它停留在"搜索"上。Chrome的"开发工具"中没有出现任何错误,我在apache日志中也没有看到相关错误。

我被困在这里了,因为没有失误,很难解决问题。

任何想法/建议都将不胜感激!

编辑

尽管此调用的响应在两个环境之间是相同的,但标头元素的完整列表却不同。

在此处查看标题中有任何不匹配的元素。

本地主机(windows环境):

Request URL:http://localhost/dropdown_getcontact.php?q=raq
Accept:application/json, text/javascript, */*; q=0.01
X-Requested-With:XMLHttpRequest
Query String Parametersview sourceview URL encoded
q:raq

生产环境(linux环境):

Request URL:http://localhost/dropdown_getcontact.php?callback=jQuery110204361302594188601_1392780655198&q=raq&_=1392780655199
Accept:*/*
Query String Parametersview sourceview URL encoded
callback:jQuery110204361302594188601_1392780655198
q:raq
_:1392780655199

干杯,ck

一篇完整的文章,面向未来的谷歌用户:

不允许跨域AJAX调用。为了解决这个问题,您需要使用JSONP。这里有一个很好的例子来说明如何做到这一点。

jQuery TokenInput插件自动检测跨域调用,并自动启用"JSONP模式",我认为这就是阻止返回的JSON在此处显示的原因。我还猜测,当localhost是域时,Chrome已经放宽了跨域AJAX请求的规则,因为它的安全漏洞要小得多。因此,您的JSON被返回(如果它托管在既不是本地主机也不是生产服务器的任何第三个域上,它就不会被返回。)-然而插件希望使用JSONP,因此无法处理标准的JSON输入。如果其他浏览器的行为相同,插件中可能会出现一个小错误。

作为参考点,您可以通过设置参数明确设置是否处于跨域模式。

crossDomain = true;

出于好奇,尝试将crossDomain = false包含在初始设置中,看看这是否有效。

最新更新