Jquery ajax完成回调没有响应201

Jus*_*eph 11 jquery coffeescript jquery-deferred

我有一个ajax帖子:

$.post("/api/v1/payment_methods/create_credit_card", values)
.done (response) ->
  console.log("GOOD JOB")
.fail (response) ->
  console.log("Adas")
Run Code Online (Sandbox Code Playgroud)

响应是201,然而,完成似乎没有捕获它,而是它将失败.我认为201会被认为是成功的,并且会被完成捕获.为什么它不起作用的任何想法?

注意:上面的代码是在coffeescript中,它并没有真正影响问题,但解释了我的语法

am_*_*am_ 8

所以我们弄清楚出了什么问题,JSON.parse抛出了一个语法错误 - 所以发送的值不是有效的JSON格式.海报无法在chrome中看到Syntax错误,但是firebug显示错误.

这表明只要Javascript抛出异常,响应可能仍然是200,201,202等 - 但由于语法错误,将触发fail()函数.

编辑 - 你也应该使用不同的响应,许多人使用200 - OK,但Id建议在这种情况下使用202 - ACCEPTED.