我正在尝试做一个简单的 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 对象中获取数据......?
这是来自 chrome 工具的网络截图: