我想解决一些我没有写的代码,并且我试图弄清楚为什么Ajax返回没有触发回调。下面是重视行为的AJAX功能代码:Ajax返回不能触发回调
# Callback before AJAX request sends
cbBeforeSend = (jqXHR, settings) ->
console.log jqXHR
# initialize message/status elements
$flashIcon.attr 'class', 'icon icon-refresh icon-spin'
$flashError.html ''
$flashNotice.html ''
# Callback when AJAX returns with success
cbSuccess = (data, textStatus, jqXHR) ->
console.log 'success'
$flashIcon.attr 'class', 'icon icon-ok-sign'
window.globalLoadCallback()
# Callback when AJAX returns with error
cbError = (jqXHR, textStatus, errorThrown) ->
console.log 'error'
$flashIcon.attr 'class', 'icon icon-remove-circle'
# Run the response javascript, even when the status indicates an error
if /text\/javascript/.test jqXHR.getResponseHeader('Content-Type')
eval jqXHR.responseText
# Callback when AJAX returns
cbComplete = (jqXHR, textStatus) ->
console.log 'cbComplete'
if $flashIcon.is('.icon-refresh')
$flashIcon.attr 'class', 'icon icon-warning-sign'
我们的应用有两个链接到报价/报价路径:
新报价链接的作品,并触发“成功”和“cbComplete '我上面显示的回调。下面是该链接的代码:
<li>
<%= link_to new_quoting_quote_path, remote:true do %>
<i class="icon icon-plus-sign"></i>
<span>New Quote</span>
<% end %>
</li>
编辑引用链接的作品,它带给你的正确的部分和对象获取控制台返回,但“成功”和“cbComplete”回调不发射(错误不是)。只有'cbBeforeSend'回调才会触发,因为flashIcon上的类保持为“icon icon-refresh icon-spin”。我不相信crm_connection有问题,因为在浏览器中,链接呈现为“/ quoting/quotes/183/edit”。正确的ID似乎被提供。下面是该链接的代码:
<%= client_management_tab 'Health', edit_quoting_quote_path(@crm_connection) %>
对不起,我不能提供更多的细节。不幸的是,我没有写这个代码,只负责修复它。感谢您提供任何帮助。
我beleive这是附加的请求的代码:
$flashInfo = $('div.flash-info')
$flashIcon = $flashInfo.find('i#ajax-status')
$flashError = $flashInfo.find('#flash-error')
$flashNotice = $flashInfo.find('#flash-notice')
$(document).bind 'ajax:beforeSend', cbBeforeSendBound
$(document).bind 'ajax:success', cbSuccessBound
$(document).bind 'ajax:error', cbErrorBound
$(document).bind 'ajax:complete', cbCompleteBound
$.ajaxSetup(
beforeSend: cbBeforeSend
success: cbSuccess
error: cbError
complete: cbComplete
)
我添加了我认为将它们附加到AJAX请求的内容。对不起,但我新使用AJAX不仅仅是改变基本文本。 – jro987
发布请求时,您在Web控制台,Firebug或Chrome开发者工具中看到什么? –