我試圖做一個簡單的ajax api調用,但我的jQuery .done()
和.always()
回調永遠不會運行,即使在調用成功後。jQuery的.done()和.always()永遠不會被調用
這裏就是我做的API調用:
join: (e) ->
e.preventDefault()
email = $('.email').val()
$.ajax(
type: 'POST'
url: '/api/email'
data: { email: email }
).done((msg) ->
console.log 'POST success'
console.log msg
).always((msg) ->
console.log 'Always'
)
下面是從我控制器post
:
app.post '/api/email', (req, res) ->
console.log req.body
,我的服務器被正確地從API調用接收數據的問題,但我jQuery回調從未被解僱。
{ email: '[email protected]' } // What gets logged server-side
編輯
所以我嘗試添加一個.fail()
方法和交換了一下代碼,看看我的語法是錯誤的,但是這個新的代碼仍然如舊代碼工作。
request = $.ajax(
type: 'POST'
url: '/api/email/beta'
data: { email: email }
)
request.done((msg) ->
console.log 'POST success'
console.log msg
)
request.fail((msg) ->
console.log 'POST Fail'
console.log msg
)
request.always(() ->
console.log 'Always'
)
EDIT 2
我剛剛意識到POST
實際上是「失敗」,但經過4.1分鐘......但奇怪的是,我仍然在REQ獲取數據.body對象...?
這裏的網絡由鉻工具的截圖:
你是否試圖抓住「失敗」? – alexmngn
什麼是響應狀態還有控制檯 –
@tilix中的任何錯誤,請看編輯 –