我想解決一些我沒有寫的代碼,並且我試圖弄清楚爲什麼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開發者工具中看到什麼? –