単純な ajax API 呼び出しを実行しようとしていますが、呼び出しが成功した後でも、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: 'test@email.com' } // 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'
)
編集2
実際には「失敗」していることに気付きましたPOST
が、4.1分後...しかし、奇妙なことに、まだreq.bodyオブジェクトでデータを取得しています...?
クロムツールからのネットワークのスクリーンショットは次のとおりです。