【发布时间】:2013-04-16 09:30:38
【问题描述】:
我已经成功地将 AJAX 添加到 Joomla 模块中(请参阅此处了解我如何做到这一点的高度不完美的实现 Putting AJAX in a Joomla Module)
我遇到的问题是返回错误,因为到目前为止,当我抛出错误时,我只是抛出了一条 JApplication 消息,例如
JFactory::getApplication()->enqueueMessage('Some error message', 'error');
但是很明显,这并没有让 AJAX 嗅出任何错误,所以每当我提交它时,它都称它为“成功”。这就是我的问题。
我喜欢的太多用户仍然没有启用 Javascript,让我很高兴只添加一个直接的 400 标头重定向(无论如何我希望向用户显示错误消息)。我仍然希望 JApplication 在禁用 javascript 时通过 PHP 将错误消息排入队列作为后备。
我还看到了将错误消息回显到页面上的方法。但是由于 Joomla 模块处理 AJAX 的方式不是特别有用,所以回调数据结果实际上是页面的完整 html 代码!所以我必须在页面上专门选择一个元素,我想如果我这样做的话 - 我不知道该怎么做/如果它甚至可能!
那么,为 AJAX 抛出错误消息然后检索它以便我可以将其显示给用户的最佳方法是什么(但仍然保留一个不错的非 JavaScript 后备?)谢谢!
【问题讨论】:
-
您可能希望发出警告或通知而不是错误。我最近在 cli 中遇到了一些错误页面的完整 html 正在发送的内容。
-
@Elin 即便如此,我如何让 AJAX 失败?我只希望来自我的模块的东西触发 AJAX 失败 - 否则我只需在 php 中插入一个条件语句并使用 JFactory::getApplication()->getMessageQueue()
标签: jquery ajax joomla joomla2.5